C++——拷贝构造函数

同一个类的对象在内存中有完全相同的结构,如果作为一个整体进行复制或称拷贝是完全可行的。这个拷贝过程只需要拷贝数据成员,而函数成员是共用的(只有一份拷贝)。在建立对象时可用同一类的另一个对象来初始化该对象,这时所用的构造函数称为拷贝构造函数(Copy Constructor)。

先看代码

 1 #include<iostream>
 2 using namespace std;
 3 class Test {
 4 public:
 5     //以参数列表形式对数据成员进行初始化
 6     Test(int d = 0) :data(d)
 7     {
 8         cout << "Create Test Object:" << this << endl;
 9     }
10     ~Test()
11     {
12         cout << "Free Test Object:" << this << endl;
13     }
14 private:
15     int data;
16 };
17 int main(int argc, char **argv)
18 {
19     Test t1(10);
20     Test t2(t1);
21     getchar();
22     return 0;
23 }
View Code

调用构造函数一次,却析构了2次。

Test t2(t1);这段代码并没有调用传统的构造函数,而是调用的拷贝构造函数

猜你喜欢

转载自www.cnblogs.com/kelamoyujuzhen/p/9427838.html