晕,你知道给问题起个名字“拷贝构造函数”居然还用问么?
mian函数中第二句调用的是拷贝构造函数初始化cb的,这个拷贝构造函数是编译器合成的,并没有做任何信息输出的,并不是你显式定义的那个。你定义的那个是默认构造函数,是mian函数中第一条语句执行的构造函数。
拷贝构造函数是复制控制相关的一组东西。
CA(const CA&){ cout<<" copy constructor, hello,world"<<endl; }
將這個加上, 就okay。
CA cb=ca; //執行到這裡,就會調用上面的函數,如果不寫,編譯器會幫你生成一個默認的。
CA ca;
CA cb=ca;//调用拷贝构造函数,你没有定义自己的函数。
CA ca,cb;
cb=ca;//这样的话是赋值,这行不调用拷贝构造函数