[C++]虛基類,解決多繼承造成的二義性
#include <iostream>
using namespace std;
//虛繼承的意義
//在多繼承中,保存共同基類的多份同名成員,雖然有時是必要的,可以在不同的數
//據成員中分別存放不同的數據,但在大多數情況下,是我們不希望出現的。因爲保留多
//份數據成員的拷貝,不僅佔有較多的存儲空間,還增加了訪問的困難。
//爲此,c++提供了,虛基類和虛繼承機制,實現了在多繼承中只保留一份共同成員。
//虛基類,需要設計和抽象,虛繼承,是一種繼承的擴展
//解決多重多級繼承造成的二義性
class A
{
public:
int i;
void print(){
cout<<"i="<<i<<endl;
}
};
class B:virtual public A //此處採用虛繼承
{
};
class C:virtual public A
{
};
class D:public B,public C
{
};
int main()
{
A a;
B b;
C c;
a.i=1;
a.print();
b.i=2;
b.print();
c.i=3;
c.print();
D d;
d.i=4;
d.print();
getchar();
return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.