C++ 几种构造函数的区分和调用

时间:2023-03-10 04:03:55
C++ 几种构造函数的区分和调用
class A
{
public:
A(); //默认构造
A( A& a ); //copy构造
const A& operator=( const A& a ); //赋值操作符
}; //调用测试
A a1; //默认构造
A a2( a1 ); //copy构造
A a3 = a2; //copy构造
a2 = a3; //赋值操作符 //对3、4的解释:
//
//3. 如果有对象被定义,那么肯定会调用构造
//
//4. 没有对象被定义时,就会调用赋值操作符 [ copy构造 ] void dost(A a); A a;
dost(a); //这里a对象是复制方式调用的dost函数
//他是由A的copy构造来完成的
//所以传值调用就意味着会调用copy构造
//所以实际运用中还是推荐使用传引用的方式调用(但不要返回局部对象的引用!)