您现在的位置: 万盛学电脑网 >> 程序编程 >> 网页制作 >> Html5 >> 正文

C++中复制和虚复制的区别

作者:佚名    责任编辑:admin    更新时间:2022-06-22

下面是C++中复制和虚复制的区别

在继承过程中, 需要区分复制(copy)和虚复制(virtual copy);

在派生类转换为基类时, 复制(copy)有可能切掉(sliced down)派生对象的派生部分, 只保留基类部分, 使派生类的虚函数无法使用; 为了避免此情况, 如果传入是对象, 则可以定义虚函数clone, 使派生类继承此虚函数, 再传入容器, 可以重载方法; 另外, 如果传入是实参, 使用shared_ptr

配合make_shared添加容器, 也可以进行动态绑定; 再传入容器中, 容器会自动调用派生类的重载方法, 实现动态绑定; 注意: 引用限定符(reference qualifier) GCC 4.8.1 才能支持;

以上就是我们给大家总结的C++中复制和虚复制的区别,希望大家继续关注本网站。