构造函数怎么在主函数调用_C++ 虚基类及其派生类构造函数(学习笔记:第7章 12)...
生活随笔
收集整理的這篇文章主要介紹了
构造函数怎么在主函数调用_C++ 虚基类及其派生类构造函数(学习笔记:第7章 12)...
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
虛基類及其派生類構(gòu)造函數(shù)[1]
- 建立對象時所指定的類稱為最遠派生類。
- 虛基類的成員是由最遠派生類的構(gòu)造函數(shù)通過調(diào)用虛基類的構(gòu)造函數(shù)進行初始化的。
- 在整個繼承結(jié)構(gòu)中,直接或間接繼承虛基類的所有派生類,都必須在構(gòu)造函數(shù)的成員初始化表中為虛基類的構(gòu)造函數(shù)列出參數(shù)。如果未列出,則表示調(diào)用該虛基類的默認構(gòu)造函數(shù)。
- 在建立對象時,只有最遠派生類的構(gòu)造函數(shù)調(diào)用虛基類的構(gòu)造函數(shù),其他類對虛基類構(gòu)造函數(shù)的調(diào)用被忽略。
有虛基類時的構(gòu)造函數(shù)舉例(補7-4)
#include <iostream> using namespace std;class Base0 { public:Base0(int var) : var0(var) { }int var0;void fun0() { cout << "Member of Base0" << endl; } }; class Base1: virtual public Base0 { public: Base1(int var) : Base0(var) { }int var1; }; class Base2: virtual public Base0 { public:Base2(int var) : Base0(var) { }int var2; };class Derived: public Base1, public Base2 { public:Derived(int var) : Base0(var), Base1(var), Base2(var) { }int var;void fun() { cout << "Member of Derived" << endl; } };int main() { //程序主函數(shù)Derived d(1);d.var0 = 2; //直接訪問虛基類的數(shù)據(jù)成員d.fun0(); //直接訪問虛基類的函數(shù)成員return 0; }參考
總結(jié)
以上是生活随笔為你收集整理的构造函数怎么在主函数调用_C++ 虚基类及其派生类构造函数(学习笔记:第7章 12)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 车辆过户保险不过行吗
- 下一篇: mysql连接指定时区_MySQL创建J