简介
示例:className ( const className &C )就是我们自定义的拷贝构造函数。拷贝构造函数是一种特殊的构造函数,函数的名称必须与类名一致,它必须的一个参数是本类型的一个引用变量。
拷贝构造函数什么时候被调用的?
- 当类对象以值传递方式传入参数时
①对象以值传递方式传入形参时,会先生成一个临时变量tem
②然后会调用拷贝构造函数把对象的值传给tem。这个步骤类似 class tem(obj);
③等函数执行完毕,会调用析构函数,将tem对象析构掉 - 当类对象以值传递的方式从函数返回
①先会产生一个临时变量tem
②然后会把returnObj(例如 return returnObj;)的值传给tem。类似于 class tem(returnObj);
③函数执行到最后先析构掉returnObj;
④函数执行完之后再把tem也析构掉。 - 对象需要通过另一个对象进行初始化
className A(100);
className B = A;//调用拷贝构造函数
//className B(A);