C++第07課 繼承 (三)
阿新 • • 發佈:2021-09-06
1.類的繼承中的同名問題
1.1正常繼承中的同名問題
基本上C++同名問題都是就近原則
如果想訪問父類成員,用類名限定即可。
2.虛繼承(菱形繼承)
A ---->int a;
B C B、C繼承自A,D多繼承於B、C ----->B:a C:a //B,C要虛繼承A
D ------>D: a a
class A { public: A(int a) :a(a) {} int a; }; class B :virtual public A{public: B(int a, int b) :A(a), b(b) {} int b; }; class C :virtual public A { public: C(int a, int c) :A(a), c(c) {} int c; }; class D:public B,public C { public: //虛繼承導致子類必須呼叫祖父類的建構函式 D() :B(1,2),C(10,20),A(100) {} void print() { cout << a << endl; //100 cout << B::a << endl; //100 cout << C::a << endl; //100 } }; int main() { D d; d.print(); return 0; }