3.5.5 定义拷贝构造函数(1)

2013-10-07 15:32:46 · 作者: · 浏览: 71

3.5.5   定义拷贝构造函数(1)

在什么时候应该为一个类设计拷贝构造函数呢?通常,如果一个类包含指向动态存储空间指针类型的数据成员,则就应为这个类设计拷贝构造函数。

例3-26

程序清单3-6所示代码定义了一个Namelist类型的对象d1。

程序清单3-6   使用编译器版本的拷贝构造函数

 
 
当语句
 
执行后,构造函数动态地分配存储空间,并将返回的地址赋给对象d1的成员p,然后将list的内容拷贝到这块空间(见图3-2)。则语句
 
 
由于Namelist类没有定义拷贝构造函数,因此如下d2的定义将导致编译器提供的拷贝构造函数被调用: