在c++的繼承關係中,只有虛函式可以被繼承,而建構函式不可以是虛函式,所以建構函式不能被繼承,但是可以通過某種特殊手段,達到繼承的效果。
先看看c++中using關鍵字的乙個應用
1 #include 2列印結果如下:using
namespace
std;34
struct
base 6};
78struct
derived : base
11};
1213
intmain()
第9行和第10行為derived類定義了兩個版本的f函式,不管你知道或是不知道,奇怪或是不奇怪,結果就是這樣,這就是using關鍵字的乙個小應用。
而c++11利用using關鍵字這一特點,是建構函式可以被「繼承」。
1使用繼承建構函式特性有一些需要注意的地方:struct
a 3 a(double d, int
i){}
4 a(float f, int i, const
char*c){}5};
67struct
b:a ;
10};
1112
intmain()
1. 如果基類的建構函式被宣告為私有函式,或者派生類是從基類虛繼承的,那麼就不能使用繼承建構函式。
2. 如果乙個類使用了繼承建構函式,那麼編譯器將不會為其生成預設的建構函式。
繼承建構函式的特性據說要到g++ 4.8才會被支援,但是我的版本是4.7,所以以上**還無法編譯。
建構函式 繼承
首先給出如下兩個建構函式 function animal function cat name,color 一 建構函式的繫結 function cat name,color var cat11 new cat 11 綠色 console.log cat11.species 二 prototype 模...
建構函式 繼承
首先給出如下兩個建構函式 function animal function cat name,color 一 建構函式的繫結 function cat name,color var cat11 new cat 11 綠色 console.log cat11.species 二 prototype 模...
建構函式的繼承
在父類中定義了2個建構函式,在子類中,也定義了2個建構函式。當執行子類時,可以發現先呼叫父類的建構函式,在呼叫子類的建構函式。實驗四 建構函式的繼承 實驗內容 在父類中,定義了2個建構函式,在子類中,也定義了2個建構函式。編寫 程式顯示父類 子類建構函式的呼叫過程,在子類中實現建構函式的繼承。pac...