有關C 繼承問題高手進

2023-01-16 21:15:52 字數 692 閱讀 5760

1樓:匿名使用者

在這裡,其實son類裡面會有兩個speak()成員

對它們的引用分別是:

son1=new son

son1->father::speak() //這個是從父類那裡繼承來的

son1->mother::speak() // 這個是從母類那裡繼承來的

這種引用法沒有二義性,可以通過編譯

如果speak()是從父母類的公有基類裡繼承的,可以在父母類定義時,用虛基類繼承

如下:class human

class mother:virtual public human

class father:virtual public human

class son:virtual public father,virtual public mother

像這種多繼承,常會發生成員函式的二義性。而用虛基類繼承只會從先輩類繼承一個公有成員比如speak(),避免了二義性。

這時的son1物件可以直接引用speak()

而不用再加上作用域符號「::」了。

2樓:匿名使用者

father,mather,son 都是人,可以先定義一個人的虛基類,

然後father,mather繼承,然後son繼承father,mather,裡面不是共有的特性就定義為虛擬函式 比如speak()

c語言問題,高手進C語言問題,高手進

第1個東西沒做過不過告訴你思路 設農夫為0,狼1,羊2,菜3,相鄰的不可以在一起無聊是在岸上還是船上。所以你就以0開始搜,不達到要求的過,最後就會出來結果 迷宮問題我都做爛了你要的是4方向的吧,給你一個還不錯的 include include include using namespace std ...

C 類繼承問題,C C 類繼承問題

你宣告的三個指標是不同型別的指標,會根據資料型別自動匹配,例如你如果宣告一個指標b指向a的一個物件的話會出錯,但是由於這個物件是c的,而c繼承了a和b,這時候通過資料型別強制轉換便可以從c的物件中獲取出b型別物件的地址。至於為什麼是a的,由於在繼承的時候有先後順序,其分配記憶體的先後順序也根據其繼承...

有關C 中指標問題,高手請進急

include using namespace std void change int int int main void change m,n 小到大 int main if pb pc if pa pb printf d d d a,b,c system pause return 0 大到小 i...