3.5.4 拷贝构造函数
到目前为止,我们已将构造函数分成了两组:默认构造函数和带参数构造函数。前者的调用不带参数,后者的调用需要参数。在带参构造函数中,有两类很重要的构造函数,为强调其重要性,它们各自拥有一个特殊的名称:拷贝构造函数(copy constructor)和转型构造函数(convert constructor)。本小节讨论拷贝构造函数,转型构造函数将在3.5.7小节讨论。
拷贝构造函数创建一个新的对象,此对象是另外一个对象的拷贝品。拷贝构造函数有两种原型:
|
是错误的。
拷贝构造函数可以有多于一个的参数,但是第一个以后的所有参数都必须有默认值。例如,原型
也声明了一个拷贝构造函数。
如果类的设计者不提供拷贝构造函数,编译器会自动生成一个。编译器生成的这个拷贝构造函数版本完成这样的操作:将源对象所有数据成员的值逐一赋值给目标对象相应的数据成员。
例3-25
