![](/img/trans.png)
[英]Copy constructor for class that has member without default constructor in C++
[英]C++:creating default constructor for a class that owns a class member(the member lacks default constructor)
該問題基於c ++入門第五版7.43。
#include<iostream>
using namespace std;
class C;
class NoDefault{
friend class C;
public:
NoDefault(int a) :item(a) {} //lack default constructor
private:
int item;
};
class C{
public:
C() :item(1){} //default constructor
void print();
private:
NoDefault item;
};
void C::print()
{
cout<<item.item;
}
int main()
{
C obj1;
obj1.print();
return 0;
}
該程序的執行不顯示任何輸出,而直接結束。 我認為輸出應為1,因為以下初始化過程:
C() :item(1){} //default constructor
NoDefault(int a) :item(a) {}
請指出我的錯誤,非常感謝!
感謝回答我的問題的人的幫助! 我發布的代碼是正確的,問題出在我的編譯器上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.