C++拷贝构造函数调用时机
拷贝构造函数调用时机通常有三种情况:
1.使用一个已经创建完毕的对象来初始化一个新对象。
2.以值传递的方式给函数参数传值。
3.以值方式返回局部对象。
#include<iostream> using namespace std; class WLM { public: WLM() { cout << "默认构造函数调用!" << endl; } WLM(int age) { m_Age = age; cout << "有参构造函数调用!" << endl; } WLM(const WLM &wlm) { m_Age = wlm.m_Age; cout << "拷贝构造函数调用!" << endl; } ~WLM() { cout << "析构函数调用!" << endl; } public: int m_Age; }; //1.使用一个创建完毕的对象来初始化一个新的对象 void test1() { WLM zjy1(10); WLM zjy2(zjy1); } //2.以值传递的方式给函数参数传值 //相当于WLM wlm = zjy; void dowork1(WLM wlm) { } void test2() { WLM zjy; dowork1(zjy); } //3.以值方式返回局部对象 WLM dowork2() { WLM zjy1; cout << "zjy1的地址:" << (int *)&zjy1 << endl; return zjy1; } void test3() { WLM zjy2 = dowork2(); cout << "zjy2的地址:" << (int *)&zjy2 << endl; } int _tmain(int argc, _TCHAR* argv[]) { test1(); test2(); test3(); system("pause"); return 0; }

浙公网安备 33010602011771号