继承产生两义性的问题
2015-03-15 15:54
120 查看
#include <iostream> using namespace std; class A { public: A(){cout<<"A构造函数执行中"<<endl;} ~A(){cout<<"A析构函数执行中"<<endl;} void print(void){cout<<"基类print函数执行"<<endl;} }; class B:virtual public A { public: B(){cout<<"B构造函数执行中"<<endl;} ~B(){cout<<"B构造函数执行中"<<endl;} }; class C:virtual public A { public: C(){cout<<"C构造函数执行中"<<endl;} ~C(){cout<<"C构造函数执行中"<<endl;} }; class D: public B,public C { public: D(){cout<<"D构造函数执行中"<<endl;} ~D(){cout<<"D构造函数执行中"<<endl;} }; int main (void) { D d; d.print(); //产生两义性,不知道是从B还是C继承的printf函数。 //继承的时候使用虚基类不会产生两义性. return 0; } /* 2015年3月15日15:53:40 程序执行结果如下: A构造函数执行中 B构造函数执行中 C构造函数执行中 D构造函数执行中 基类print函数执行 D构造函数执行中 C构造函数执行中 B构造函数执行中 A析构函数执行中 请按任意键继续. . . */
相关文章推荐
- 多重继承容易产生两义性
- 继承产生的友元访问权限问题
- 虚函数,重载,继承叠加产生的问题
- epoll在多进程下产生的“惊群”现象——如何避免——多进程因为文件描述符继承问题导致
- 标签换行产生的间距消除的三种办法及子元素继承属性问题
- c++菱形继承产生的问题及解决
- 菱形继承产生的问题及解决
- Cpp多重继承会产生的问题
- Java内部类继承所产生的问题
- 虚继承防止多重继承产生的二义性问题
- 【c++程序】多重继承容易产生两义性
- Cpp多重继承会产生的问题
- 多重继承之虚继承(主要是为了解决产生的数据冗余问题)
- web组件设计,利用接口(IPostBackDataHandler)产生数据回传的问题
- 设计思考之“IComponent-ISite-IContainer 组合还是继承,这是个问题”
- 基类与接口混合继承的声明问题 [C#, Design]
- web组件设计,利用接口(IPostBackDataHandler)产生数据回传的问题
- tomcat自动持久会话产生问题
- 关于在asp.net中类的继承问题
- OpenSMTP 发送中文名称附件产生乱码问题