shared_from_this多继承时遇到的问题
来源:互联网 发布:淘宝男装外贸 编辑:程序博客网 时间:2024/05/16 06:04
#include <memory>class A : public std::enable_shared_from_this<A>{public: A(){ a_name = "A";} virtual ~A(){} std::shared_ptr<A> get_share_ptr_A() { return shared_from_this();} std::string get_a_name(){ return a_name;}private: std::string a_name;};class B : public std::enable_shared_from_this<B>{public: B(){ b_name = "B";} virtual ~B(){} virtual std::shared_ptr<B> get_share_ptr_B() { return shared_from_this();} std::string get_b_name(){ return b_name;}private: std::string b_name;};class C : public A, public B//, public boost::enable_shared_from_this<C>{public: C(){} ~C(){} std::shared_ptr<C> get_share_ptr_C() { return std::dynamic_pointer_cast<C>(std::enable_shared_from_this<A>::shared_from_this()); }};void test_func(){ std::shared_ptr<C> c(new C()); std::shared_ptr<C> pc = c->get_share_ptr_C(); std::cout<<pc->get_share_ptr_A()->get_a_name()<<std::endl; std::cout<<pc->get_share_ptr_B()->get_b_name()<<std::endl;}
《shared_from_this需要注意的地方》只解决class C : public A的情况。要是遇到上面的情况那该如何呢?
std::cout<<pc->get_share_ptr_A()->get_a_name()<<std::endl; std::cout<<pc->get_share_ptr_B()->get_b_name()<<std::endl;哪一句能够成功和继承顺序有关,原理是一样的。但是我没找到合适的方法,所以还是选择了绕过这个问题,即不使用多继承。
- shared_from_this多继承时遇到的问题
- 多线程时使用shared_from_this的一个注意问题
- 继承HibernateDaoSupport时遇到的问题
- shared_from_this bad_weak_ptr的原因
- shared_from_this
- shared_from_this
- shared_from_this
- shared_from_this()
- shared_from_this()
- 对于学习继承时的遇到一些问题
- 使用spring全注解实现继承时遇到的问题
- C++中基类继承 enable_shared_from_this 之后派生类无法使用 shared_from_this() 的解决方法
- C++ 多继承的类型转换中遇到的问题(待续)
- 我在编写SpringMVC的Controller时遇到的注解继承问题
- 继承QToolButon实现Qt自定义按钮遇到的事件问题
- C++中继承中遇到的构造函数问题
- PHP CI框架继承Smarty步骤及遇到的问题
- 继承RecyclerView.Adapter使用泛型遇到的问题
- http 错误代码表
- shared_from_this 几个值得注意的地方
- 免費的OPENVPN,建立你的專屬區網
- live555学习之基本类介绍及计划任务深度探讨
- SecureCRT的详细使用教程 二
- shared_from_this多继承时遇到的问题
- operator new和new operator
- 分享自己写的一个小工具RGB转十六进制(高手勿喷)
- 初识JPA外键关联:指向外部表的主键
- 重现unladen-swallow的性能对比实验
- 你有多强大?
- hdu-4466-Triangle 数学题
- 编程工具的回忆
- Android:定制化CursorAdapter,简洁版