我有一個類爲它創建一個構造函數「A」。然後我用一個構造函數「B」創建另一個類。我如何使用C++語言從不同類的構造函數調用構造函數「B」,即「A」?從不同類的構造函數調用構造函數
-2
A
回答
1
在C++成員或類的對象變量本身的字段中,它們的構造函數自動被編譯器調用,正好在類實例化的時候,也就是當它自己的構造函數被調用時。在C++中實例化對象的順序與此類似,基類構造函數get的先調用,然後是成員變量,然後是派生類,它是您的類。
2
如果A
繼承自B
那麼您可以從構造函數A
中調用基類構造函數。在C++ 11中,你有更多的靈活性,你可以使用委託構造函數。否則,這個問題沒有多大意義。
構造函數是一種特殊的函數,只有在創建新對象時纔會調用該函數。除非你這樣做,否則你不能調用它,通常當你想創建一個新對象時調用構造函數 - 調用構造函數不是你的目標,得到新對象。
1
這將爲您的目的服務。
class A {
public:
A(){
//your code
}
};
class B{
public :
B():A(){
//your code
}
};
1
如果兩個類都不在父親子關係中,那麼你可以將類A組成B類。下面是一個例子。
class B{
public:
B(){
cout<<"Class B constructor"<<endl;
}
};
class A{
B pbj;
public:
A(){
cout<<"Class A Constructor"<<endl;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
A obj1;
return 0;
}
相關問題
- 1. 在構造函數中調用不同類的構造函數?
- 2. 在構造函數中調用類成員的構造函數
- 3. 從參數化構造函數調用默認構造函數
- 4. 構造函數中的調用基構造函數和其他構造函數
- 5. 在父構造函數之前調用子類構造函數
- 6. Move構造函數調用基類移動構造函數
- 7. 調用構造函數從
- 8. 將參數從不同的構造函數傳遞給類構造函數?
- 9. 從構造函數調用構造函數並捕獲異常
- 10. 從另一個構造函數調用默認構造函數
- 11. 從構造函數調用構造函數
- 12. 從同一類的構造函數調用靜態函數
- 13. 如何在構造函數類擴展時從類調用構造函數?
- 14. 構造函數內的構造函數
- 15. 構造函數調用具有參數的構造函數
- 16. 無參數構造函數調用2參數構造函數
- 17. 從構造函數調用類方法
- 18. 在與超類構造函數不同的子類中定義構造函數?
- 19. 從基類構造函數訪問子構造函數
- 20. 屬性類不調用構造函數
- 21. 在java中調用繼承構造函數的構造函數
- 22. 類構造函數
- 23. JavaScript構造函數和Scala構造函數有何不同?
- 24. 在Kotlin中有兩個不同構造函數的數據類構造函數
- 25. Java:如何調用子類構造函數內的超類構造函數?
- 26. 基類構造函數在派生類構造函數之前真的調用
- 27. C++類構造函數/析構函數
- 28. 如果子類不定義構造函數,是否調用父構造函數?
- 29. 從C#中的參數化構造函數調用無參數構造函數?
- 30. 從基類構造函數調用派生類的虛函數?
'A :: A(){B(); 「從技術上講,這正是你所要求的,儘管我有強烈的感覺,這並不是你想要做的事情(所陳述的問題沒有多大意義)。 –
你試圖達到什麼目的是絕對不清楚的。你是否試圖在A的構造函數中實例化B?你在A類中有一個B類成員字段嗎?在創建類實例(對象)時調用構造函數。你的實例在哪裏? –