一,Copy Constructor
就像default constructor一样,C++ Standard上说,如果class没有声明一个copy constructor,就会隐式的定义一个copy constructor。C++ Standard把copy constructor区分为trivial和nontrivial两种,只有nontrivial才会合成于程序之中。
二,下面的四种情况合成的copy constructor是nontrivial(有用的)
(1),当一个class内含member object,而后者的class声明有一个copy constructor时。
(2),当class继承自一个base class而后者存在一个copy constructor时。
(3),当class声明一个或多个virtual functions时。
(4),当class派生自一个继承链,其中有一个或多个virtual base class时。