信管14:多重继承-虚基类示例代码?
来源:互联网 发布:snap.svg.js 编辑:程序博客网 时间:2024/05/18 22:44
多重继承容易产生二义性,除显式指明调用会产生二义性的成员外,解决方法还可以使用虚基类。分析下在代码,分析几个类的继承情况,和虚基类的机制。
#include<iostream>#include<string>using namespace std;class B{ int a; public: B(int sa) { a=sa; cout<<"Constructing B"<<endl; } void print_B() { cout<<"base class:a="<<a<<endl; }};class B1:virtual public B{ int b; public: B1(int sa,int sb):B(sa) { b=sb; cout<<"Constructing B1"<<endl; } void print_B1() {cout<<"B1 class:b="<<b<<endl; }};class B2:virtual public B{ int c; public: B2(int sa,int sc):B(sa) {c=sc; cout<<"Constructing B2"<<endl; } void print_B2() { cout<<"B2 class:c="<<c<<endl; }};class D:public B1,public B2 { int d; public: D(int sa,int sb,int sc,int sd):B(sa),B1(sa,sb),B2(sa,sc) { d=sd; cout<<"Constructing d"<<endl; } void print_D() { cout<<"D class:d="<<d<<endl; }}; int main() { D obj(2,4,6,8); cout<<"**********************"<<endl; obj.print_D(); obj.print_B(); obj.print_B1(); obj.print_B2(); system("pause"); return 0; }
0 0
- 信管14:多重继承-虚基类示例代码?
- 信管14:多重继承二义性示例代码
- 信管14:多重继承示例一
- 信管14:类的继承示例代码2
- 信管14:类的继承示代码1
- 信管14:虚函数示例代码一
- 信管14:虚函数示例代码二
- 信管14:纯虚函数示例代码
- 信管14:函数重载示例
- 信管14:静态成员函数示例
- 信管14:静态数据成员示例
- 信管14:友元函数示例
- 信管14:对象成员示例
- 信管14:前四章节课堂小测-编程示例代码
- 信管14:基类和派生类关系示例代码
- 信管14:c++:定义对象示例:学生类
- 信管14:对象的成员访问示例
- 信管14:对象数据成员访问示例
- Docker-组件分析
- 黑马程序员——java基础知识之面向对象(三)
- 《第七周RFID作业》物联112118 林家辉
- 【转】WINDOWS命令和批处理
- Javascript面向对象编程(二):构造函数的继承
- 信管14:多重继承-虚基类示例代码?
- <汇编>MASM5.0编译出现<error link:no stack segment>
- const用法总结
- node.js express 支持中文路由的中间件
- Using是个好开关
- 虚拟机ubuntu配置桥接上网
- cannot be cast to android.widget.HeaderViewListAdapter
- ubuntu安装winqq
- 整月(月末)增加固定的几个月后所得到的日期