我有一個類爲它創建一個構造函數「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. Move構造函數調用基類移動構造函數
- 5. 從另一個構造函數調用默認構造函數
- 6. 從構造函數調用構造函數
- 7. 構造函數調用具有參數的構造函數
- 8. 無參數構造函數調用2參數構造函數
- 9. 屬性類不調用構造函數
- 10. 在java中調用繼承構造函數的構造函數
- 11. 類構造函數
- 12. 在Kotlin中有兩個不同構造函數的數據類構造函數
- 13. Java:如何調用子類構造函數內的超類構造函數?
- 14. 基類構造函數在派生類構造函數之前真的調用
- 15. 從C#中的參數化構造函數調用無參數構造函數?
- 16. 如何在其他構造函數中調用構造函數?
- 17. 從不同的類python調用構造函數
- 18. 構造函數和構造函數中不同類的成員值
- 19. 調用構造函數
- 20. 調用構造函數
- 21. Java調用構造函數
- 22. CodeDom調用構造函數
- 23. Java構造函數調用
- 24. 構造函數調用
- 25. 確定一個構造函數調用其基類的構造
- 26. 內部類的構造函數調用
- 27. Scala:調用超類的構造函數
- 28. 調用模板類的構造函數
- 29. 字符串類的構造函數和複製構造函數
- 30. SyntaxFactory使用調用基類構造函數生成構造函數
'A :: A(){B(); 「從技術上講,這正是你所要求的,儘管我有強烈的感覺,這並不是你想要做的事情(所陳述的問題沒有多大意義)。 –
你試圖達到什麼目的是絕對不清楚的。你是否試圖在A的構造函數中實例化B?你在A類中有一個B類成員字段嗎?在創建類實例(對象)時調用構造函數。你的實例在哪裏? –