不可变类//让类成为不可变类的三种方法:
拷贝构造函数:一种特殊的构造函数,它必须的一个参数是本类型的引用变量。
(1)有三种情况需要调用拷贝构造函数:
1、对象以值传递的方式传入函数参数
2、对象以值传递的方式从函数返回
3、新建对象需要另外一个对象初始化
(2)这其中还涉及到浅拷贝和深拷贝
其中两种情况下要用深拷贝:需要动态分配空间;有静态数据成员。
(3)防止默认拷贝发生
将拷贝函数声明为私有。
(4)对于一个类X, 如果一个构造函数的第一个参数是下列之一:
X&
const X&
violatile X&
const violatile X&
且 没有其他参数 或 其他参数都有默认值
参考:http://blog.csdn.net/lwbeyond/article/details/6202256