拷贝构造函数和赋值构造函数

拷贝构造函数:

新建一个对象然后初始化为同类对象的时候,会调用拷贝构造函数。如下有四种方式:

StringBad ditto(motto); StringBad ditto=motto;//* StringBad ditto=StringBad(motto);//* StringBad* ditto=new StringBad(motto); 

中间两种可能调用拷贝构造函数,也可能创建一个临时变量然后将内容赋值给新对象。

当然,passing by value的时候,也会调用拷贝构造函数。

 

 

赋值构造函数:

将一个对象赋值给另一个对象的时候。

注意:

由于目标对象可能引用了以前分配的数据,所以采用delete[] 来释放这些数据;

避免赋值给自身,否则在赋值前,可能已经删除了原来的数据

函数返回一个指向调用对象的引用

你可能感兴趣的:(delete)