先看這個:
class base
{
public:
int b;
void print() {cout 《 "base" 《 endl;}
};
class derived1 : public base
{
public:
int d1;
};
class derived2 : public base
{
public:
int d2;
};
class grandson : public derived1,public derived2
{
public:
int g;
};
這里,我們讓derived1和derived2繼承base,再讓grandson繼承derived1和derived2,我們是想實現(xiàn)一個菱形結(jié)構(gòu):
我們可以寫出主程序:
void main()
{
grandson gs;
// gs.b = 1;
// gs.base::b = 1;
// gs.print();
}
看見我加注釋的那三句話了嗎?每句都會報錯的!為什么那?
因為,想實現(xiàn)棱形結(jié)構(gòu)只是我們的一廂情愿!我們又沒告訴編譯器,編譯器哪有那么聰明!
相關(guān)推薦:
等考C++備考之如何學(xué)習(xí)C++與面向?qū)ο螅航M合 等考C++備考之如何學(xué)習(xí)C++與面向?qū)ο螅褐剌d C++備考之如何學(xué)習(xí)C++與面向?qū)ο螅簶?gòu)造函數(shù)與&