_J

please call me j

导航

【c++手记】Copy Constructor

【资料】
     《primer》P407 复制构造函数
 
【内容】
    1.  一种特殊构造函数。特征:单个形参(常用const修饰),是对该类类型的引用。
         当定义一个新对象,并用一个同类型的对象,对它进行初始化时。将显示使用复制构造函数。当将该类型的对象传递给函数或从函数返回该类型的对象时,将隐式使用复制构造函数。
 
    2.复制构造函数作用
          1.根据另一个同类型的对象显示或隐式初始化一个对象。(详细请参照《Primer》P406“对象定义形式”)
          2.复制一个对象,将它作为实参传给一个函数(函数的形参为类类型时),复制实参的值。(《Primer》P407倒数第6行
          3.函数返回时复制一个对象(返回值为类类型时),返回retun语句的值得副本(《Primer》P407倒数第5行)
          4.初始化顺序容器的元素。
          5.根据元素初始化式列表初始化数组元素。
     
     默认复制构造函数只完成必要的工作,只包含类类型成员或内置类型(非指针类型)成员的类。
     
    3.自定义复制构造函数目的:(大多数类应自定义复制构造函数与默认构造函数)
          1.类中有数据成员为指针,或者有成员表示在构造函数中分配的其他资源
          2.类在创建新对象时必须做一些特点工作
 
    深拷贝浅拷贝相关资料请查看笔记《Design Pattern》Prototype一节)
     
    4.禁止复制
           防止复制,类必须显示声明其复制构造函数为Private!

posted on 2012-08-28 13:37  _J  阅读(136)  评论(0编辑  收藏  举报