- copy constructor也分为trivial和nontrivial两种
- 如果class展现出bitwise copy semantics(按位拷贝语义),则不会构造出
copy constructor。 - 反之,会构造出一个copy constructor。
- 如果class展现出bitwise copy semantics(按位拷贝语义),则不会构造出
- 不要bitwise copy semantics
- 内含一个拥有nontrivial copy constructor的成员变量
- base class 存在一个nontrivial copy constructor
- virtual function
还是vptr的问题,如果直接按位拷贝,也就是使用derived class来给
base class初始化,那么按位拷贝就会使得base class的vptr是derived的vptr
那就出错了。
比如:
D d;
B b =d;
如果按位拷贝,以后调用b,就会出现”多态”,这是不合理的。 - virtual base class
每个编译器对于虚拟继承的支持承诺,都表示必须让 derived class object 中的virtual
base class subobject位置 在执行期就准备妥当。
copy constructor
最新推荐文章于 2025-02-15 17:28:46 发布
本文深入探讨了C++中拷贝构造函数的分类及其工作原理,强调了当类不支持按位拷贝时的必要性,并详细解释了如何避免潜在错误,特别是涉及虚基类和多态性的情况。
445

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



