下面是C++中复制和虚复制的区别:
在继承过程中, 需要区分复制(copy)和虚复制(virtual copy);
在派生类转换为基类时, 复制(copy)有可能切掉(sliced down)派生对象的派生部分, 只保留基类部分, 使派生类的虚函数无法使用; 为了避免此情况, 如果传入是对象, 则可以定义虚函数clone, 使派生类继承此虚函数, 再传入容器, 可以重载方法; 另外, 如果传入是实参, 使用shared_ptr
配合make_shared添加容器, 也可以进行动态绑定; 再传入容器中, 容器会自动调用派生类的重载方法, 实现动态绑定; 注意: 引用限定符(reference qualifier) GCC 4.8.1 才能支持;
以上就是我们给大家总结的C++中复制和虚复制的区别,希望大家继续关注本网站。
class=area> 压缩包打不开怎么办?这个问题是网友…
很多新手菜鸟的电脑在用过一段时间后就特慢,本人为好多新手处理过电脑…
是作者及同事在CorelDRAW画产品过程中的一些积累,希望对大家有所帮助,更希望能有大虾指出不足。从勾线开始讲…
想要体验Win8超炫的Metro效果,却止步于全英文的操作界面?现在,这个问题终于得到了解决,大…