经典问题解析三

问题

什么时候需要重载赋值操作符?

编译器是否提供默认的赋值操作?

关于赋值的疑问

编译器为每个类默认重载了赋值操作符

默认的赋值操作符仅完成浅拷贝

当需要进行深拷贝时必须重载赋值操作符

赋值操作符与拷贝构造函数有相同的存在意义

问题分析

经典问题解析三_第1张图片

一般性原则

重载赋值操作符,必然需要实现深拷贝!!!

编译器默认提供的函数

经典问题解析三_第2张图片

 

下面的代码输出什么?为什么?

经典问题解析三_第3张图片

问题分析

经典问题解析三_第4张图片

下面的程序输出什么?为什么?

 经典问题解析三_第5张图片

问题分析

经典问题解析三_第6张图片

小结

在需要进行深拷贝的时候,必须重载赋值操作符

赋值操作符和拷贝构造函数有同等重要的意义

string 类通过一个数据空间保存字符数据

string 类通过一个成员变量保存当前字符串的长度

C++ 开发时尽量避开 C 语言中惯用的编程思想

你可能感兴趣的:(C++,c++)