一,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时。
本文详细介绍了C++中拷贝构造函数的概念,并列举了四种情况下合成的拷贝构造函数为非平凡的情况:1) 类包含具有拷贝构造函数的成员对象;2) 类从具有拷贝构造函数的基本类继承;3) 类声明了一个或多个虚函数;4) 类派生于继承链,其中有一个或多个虚基类。
440

被折叠的 条评论
为什么被折叠?



