菱形問題:三個派生類同時繼承乙個基類,又存在另乙個派生類同時繼承這三個派生類。這將導致建立三個基類物件(calss one),當我們通過three去呼叫one的函式實現時, 將出現錯誤,編譯器不知道呼叫哪個one的函式,這將是我們不願意發生的。
#include using namespace std;
class one
};/*建立兩個物件*/
class two_1 : public one
};/*建立兩個物件*/
class two_2 : public one
};/*建立兩個物件*/
class two_3 : public one
};/*多繼承*/
class three : public two_1, public two_2, public two_3
};int main()
output:
one constructor //例項化一次
two_1 constructor
one constructor //例項化兩次
two_2 constructor
one constructor //例項化三次
two_3 constructor
three constructor
可以用虛繼承解決上述問題。
#include using namespace std;
class one
};class two_1 : virtual public one
};class two_2 : virtual public one
};class two_3 : virtual public one
};/*多繼承*/
class three : public two_1, public two_2, public two_3
};int main()
output:
one constructor
two_1 constructor
two_2 constructor
two_3 constructor
three constructor
學習前端的第三十六天
嚴格模式的開啟方式 全域性嚴格 配合匿名函式 嚴格模式開啟之後的變更 宣告變數必須加關鍵字 var 不允許引數名重複 沒有明確隸屬物件的函式中的this 執行了 指向undefined arguments的內容不會被形參的改變而影響 arguments.callee被禁止使用 foreach map...
100題 第三十六 比賽淘汰問題(谷歌筆試)
一,題目 谷歌筆試 n支隊伍比賽,分別編號為0,1,2 n 1,已知它們之間的實力對比關係,儲存在乙個二維陣列w n n 中,w i j 的值代表編號為i,j的隊伍中更強的一支。所以w i j i 或者j,現在給出它們的出場順序,並儲存在陣列order n 中,比如order n 那麼第一輪比賽就是...
100題 第三十六 比賽淘汰問題(谷歌筆試)
一,題目 谷歌筆試 n支隊伍比賽,分別編號為0,1,2 n 1,已知它們之間的實力對比關係,儲存在乙個二維陣列w n n 中,w i j 的值代表編號為i,j的隊伍中更強的一支。所以w i j i 或者j,現在給出它們的出場順序,並儲存在陣列order n 中,比如order n 那麼第一輪比賽就是...