当我用另一个对象的副本初始化它时,为什么类对象的构造函数不起作用?
class Human
{
int No;
public:
Human(int arg):No(arg)
{
cout<<"constructor Works"<<endl;
}
};
int main()
{
Human a{10}; // constructor Works for object a
Human b{a}; //why b object's constructor dont work?
}
Run Code Online (Sandbox Code Playgroud)
您需要一个复制构造函数,否则编译器将生成一个(不输出任何内容).加:
Human(const Human& h):No(h.No) { std::cout << "copy-ctor" << std::endl; }
Run Code Online (Sandbox Code Playgroud)