![](/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.