您的位置:首页 > 其它

构造函数,拷贝构造函数,赋值函数,析构函数

2016-06-14 20:01 169 查看
C++编译器将自动为A 产生四个缺省的函数,例如:

A(void); // 缺省的无参数构造函数

A(const A &a); // 缺省的拷贝构造函数

~A(void); // 缺省的析构函数

A & operate =(const A &a); // 缺省的赋值函数

缺省是浅拷贝和浅赋值。拷贝和赋值是一样的. 当有指针的时候,会在析构的时候,两次析构一个对象造成对象,造成错误。详见
http://blog.csdn.net/fdsafwagdagadg6576/article/details/51674155
所以当有指针的时候要深拷贝.同时深赋值。即copy函数和赋值函数同时要重写。

重写详见:http://blog.csdn.net/fdsafwagdagadg6576/article/details/51674004。

class CExample {

......

};

int main()

{

 CExample A(100);

 CExample B = A; //注意这里的对象初始化要调用拷贝构造函数,而非赋值

CExample C;

C = A; // 赋值函数

  B.Show ();

 return 0;

}

拷贝和赋值:

当对象在声明的时候即用另一个对像进行初始化 即称为拷贝。如果是在声明之后,在进行赋值操作,则需要重载赋值操作符
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: