-2
A
回答
1
的任何類,不僅得到,可以具有默認構造函數,或沒有。即使在C++ 98好醇」天是這樣的:
struct Base {
Base(int) {}
};
struct Derived: Base {
Derived(int x): Base(x) {}
};
所以,Derived d;
不會編譯。
0
從C++的書:
如果一個基類的構造函數默認參數,這些參數都 不繼承。相反,派生類獲得多個繼承的構造函數,其中每個帶默認參數的參數依次省略爲 。
當您聲明任何其他構造函數時,編譯器將刪除默認構造函數。
第一種情況:
#include <iostream>
using namespace std;
class A
{
public:
A(){}
A(int i){}
};
class B: public A
{
public:
B(int i):A(i){}
};
int main()
{
B b;
}
,並在編譯程序,編譯器給出了一個錯誤:
error: no matching function for call to ‘B::B()’
B b;
在第二種情況:
#include <iostream>
using namespace std;
class A
{
public:
A(){}
A(int i){}
};
class B: public A
{
public:
B(){}
B(int i):A(i){}
};
int main()
{
B b;
}
它的正常工作。
相關問題
- 1. 派生類是否總是需要調用默認的基礎構造函數?
- 2. 派生類中的默認構造函數
- 3. 是否可以從基類構造函數創建派生類?
- 4. 由派生類調用的默認構造函數
- 5. C++派生類的默認構造函數
- 6. 約束 - 派生類必須有一個默認構造函數
- 7. 是構造函數生成的默認構造函數嗎?
- 8. 初始化派生類的構造函數中沒有默認構造函數的基類
- 9. 類默認構造函數
- 10. 派生類中的VB.NET構造函數
- 11. 「沒有適當的默認構造函數可用」用於C++派生類
- 12. 從派生類數組中初始化基類非默認構造函數
- 13. 構造函數以kotlin派生類中的可分發構造函數
- 14. 當編譯器會生成默認的構造函數派生類
- 15. 是否有默認的默認構造函數?
- 16. 如何從派生類的實例調用基類非默認構造函數?
- 17. C++改變默認參數在派生類的構造
- 18. 顯式調用派生構造函數中的base()是否可選?
- 19. 派生類的構造函數(Java)
- 20. 派生類的python構造函數
- 21. 當派生類構造函數初始化列表時,基類沒有默認構造函數
- 22. 如果基類構造函數不是constexpr,我可以構造派生類constexpr的構造函數嗎?
- 23. 如何在派生構造函數中生成參數時將其傳遞給默認構造函數?
- 24. 默認構造函數和析構函數是否內聯?
- 25. Python是否有類的默認構造函數?
- 26. 默認類構造函數的兩種形式是否等價?
- 27. 是否可以「添加」到默認的拷貝構造函數?
- 28. 默認構造函數與正常構造函數的類C++
- 29. 派生類構造函數調用
- 30. 從沒有默認構造函數的虛擬基礎派生類
在此處發佈代碼,而不是發佈代碼圖片的鏈接。 –
你得到了什麼輸出 –