拷贝构造函数

      不可变类//让类成为不可变类的三种方法:

      

      拷贝构造函数:一种特殊的构造函数,它必须的一个参数是本类型的引用变量。

  (1)有三种情况需要调用拷贝构造函数:

     1、对象以值传递的方式传入函数参数

     2、对象以值传递的方式从函数返回

     3、新建对象需要另外一个对象初始化

   (2)这其中还涉及到浅拷贝和深拷贝

          其中两种情况下要用深拷贝:需要动态分配空间;有静态数据成员。

  (3)防止默认拷贝发生

          将拷贝函数声明为私有。

  (4)对于一个类X, 如果一个构造函数的第一个参数是下列之一

         X&

         const X&

         violatile X&

         const violatile X&

         且 没有其他参数 或 其他参数都有默认值

      参考:http://blog.csdn.net/lwbeyond/article/details/6202256

原文地址:https://www.cnblogs.com/573177885qq/p/4781210.html