2013-07-17 141 views
-2

因爲它位於標題處。我不希望派生類繼承基類的構造函數

這裏是例子:

#include <iostream> 

using namespace std; 

class Base { 
private: 
    int nSize; 

public: 
    Base(){ 
     cout << "I'm Base constructor" << endl; 
    } 
}; 

class Derived : public Base { 
    int nMaxSize; 

public: 
    Derived(){ 
     cout << "I'm Derived constructor" << endl; 
    } 
}; 

int main(){ 
    Derived obj; 

    return 0; 
} 

結果:

 
I'm Base constructor 
I'm Derived constructor 
+1

創建派生類的對象時,總是會調用基類構造函數,這就是繼承的工作方式。也許作文會是一個更好的選擇。 – Borgleader

+0

派生對象必須以某種方式構建其基礎對象。比不繼承的 – Rapptz

+0

。 – user1810087

回答

3

你別無選擇。你可以做的最好的方法是將一個標誌傳遞給基礎構造器,禁用你不想要的東西。但是這表明糟糕的設計。

相關問題