C++ 類中呼叫基類帶引數建構函式以及常量如何初始化

發表於2017-01-02

有時候,基類建構函式是帶有引數,而子類建構函式是不帶引數的,如下:

在建立Cat類物件時,編譯出錯:

C:\Documents and Settings\Administrator\桌面\abc\Text1.cpp(104) : error C2512: ‘Animal’ : no appropriate default constructor available

解決這個問題應該在Cat的建構函式中顯式呼叫基類的帶參建構函式。因為在基類中定義了帶參建構函式,編譯器不會提供預設建構函式。
(或者可以在基類中增加一個不帶引數的建構函式)這個問題將解決。

下面採用的是呼叫基類帶參建構函式的方式:

即在建構函式的後面增加一個冒號,後面是基類的建構函式。

這種方式同樣可以用來初始化類中的常量。

由於在類定義中不允許對成員進行初始化,常量也不允許。

如下所示:

相關文章