菱形繼承問題 解決問題的virtual原理

2021-10-06 23:44:56 字數 879 閱讀 1851

a類有public了個int age;

b類與c類都繼承了a類

son類分別繼承了b類與c類

這是問題就出現了↓

宣告乙個函式,函式體是賦值父類b的age,但是編譯器報錯(不明確)

意思就是編譯器不知道你要給父類b.age賦值還是給c.age賦值?

這時你要用到乙個virtual(虛繼承)關鍵字,而父類叫做虛基類

下面是**演示↓

class paishenglei_a:virtualpublic jilei{};

class paishenglei_b:virtualpublic jilei{};

b類與c類共用1個指標位址(這樣節省乙個1個成員的所佔位元組大小)

而不加virtual關鍵字:b、c類都是用的自己繼承來的父類成員(並且會浪費1個成員的所佔位元組大小)

下面是全域性的**演示↓

#include#includeusing namespace std;

class jilei

;class paishenglei_a:virtual public jilei

;class paishenglei_b:virtual public jilei

;class wenti:public paishenglei_a,public paishenglei_b

;void test01()

int main()

發現問題,解決問題

這幾年的博士生涯,其實學到的不少東西。雖然並沒有做出什麼東西來,但是自身專業知識提高了不少,相比較剛入學來說。自從定了課題後,雖然課題方向也不是我自己定的。因為入學時基礎特別差,從力學轉過來,專業方向欠缺太多知識。根本無法一時半會找到合適的方向。定了課題後,看了一年的 收穫不多其實。大海浬撈針一樣,...

C 學習中遇到問題 解決問題 1

lastindexof lastindexof 其實分開測試,就很容易懂的,一點就懂的,不妨可以自己斷點試試看 分開測試 lastindexof substring 0,strceshi 上面的strceshi 就是返回了 上一級結束的目錄的長度 str的結果為 d c xm ceshi ceshi...

oom問題解決

dalvik虛擬機會為應用程式分配固定大小的heap 如果使用超過了這個heap的大小,且沒有可被 物件,就會報oom。多張較大會迅速占用空間造成oom。我們可以使用一下的方法來減少這種情況的產生 1.減少單張的大小,根據螢幕大小來對bitmap做resize。private void setima...