c++ - C++:复制对象类型指针
问题描述
如果有此代码,为了简化我的问题:
class Parent
{
public:
Parent();
~Parent();
virtual void Func() = 0;
};
class Child1 : public Parent{
public:
Child1();
void Func() override;
...
};
class Child2 : public Parent{
public:
Child2();
void Func() override;
...
};
//Some other file
std::vector<Parent*> vec;
vec.push_back(new Child1());
vec.push_back(new Child2());
std::vector<Parent*> vec2;
vec2.push_back(new Parent(*vec[0]));//Gives me an error: object of abstract class type "Parent" is not allowed
我想做的是创建一个副本,vec
而不是指向同一个内存位置。
解决方案
推荐阅读
- python - 使用 python logger 从非 python 第三方库捕获输出
- cakephp-1.3 - cakephp 不发送激活
- firebase - 如何在应用脚本gmail添加项目的请求标头中使用具有身份验证的firebase API
- node.js - 在 Angular /w Electron 中在哪里执行初始化函数?
- r - 错误:处理小插图'QuickStart.Rmd' 诊断失败:没有名为'utf8' 的包
- flutter - 参数类型“Future<>”不能分配给参数类型“”
- kotlin - Kotlin:评估 getter-/setter-methods
- c++ - 在 C++ 中将多级转换为层次继承
- mysql - MySQL 未启动,systemctl status mysql.service”和“journalctl -xe”
- visual-studio-code - 如何在已经在片段中完成标签到新片段?