标签:
1、赋值操作符的定义
Test& oprerator=(const Test& rhs);
注意:返回值类型必须为引用(一般返回值为*this)
如果不是返回引用,而是直接返回Test,那么从返回形参到实参中间又要继续调用赋值操作符=,这样会形成死循环,导致栈溢出,编译也不能通过
2、赋值操作符的调用
Test t1; t1=t2; //赋值操作符 Test t3=t2; //复制构造函数
复制构造函数和赋值操作符的区别:
赋值运算符处理两个已有对象,即赋值前=两边的对象都是存在的;而复制构造函数是生成一个全新的对象,即调用复制构造函数之前=左边的对象不存在。
3、深拷贝和浅拷贝
当使用赋值操作符时,要注意对象中是否有指针变量。如果有,则要注意是进行深拷贝还是浅拷贝
标签:
原文地址:http://www.cnblogs.com/qinm/p/5754333.html