您的位置:首页 > 编程语言 > C语言/C++

C++本质:类的赋值运算符=的重载,以及深拷贝和浅拷贝

2014-01-06 09:46 477 查看
在面向对象程序设计中,对象间的相互拷贝和赋值是经常进行的操作。

如果对象在申明的同时马上进行的初始化操作,则称之为拷贝运算。例如:

class1 A("af"); class1 B=A;

此时其实际调用的是B(A)这样的浅拷贝操作。

如果对象在申明之后,在进行的赋值运算,我们称之为赋值运算。例如:

class1 A("af"); class1 B;

B=A;

此时实际调用的类的缺省赋值函数B.operator=(A);

不管是浅拷贝还是赋值运算,其都有缺省的定义。也就是说,即使我们不overload这两种operation,仍然可以运行。

那么,我们到底需不需要overload这两种operation 呢?

答案就是:一般,我们我们需要手动编写析构函数的类,都需要overload 拷贝函数和赋值运算符。
http://www.cnblogs.com/winston/archive/2008/06/03/1212700.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐