首页 > 解决方案 > 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而不是指向同一个内存位置。

标签: c++inheritancepolymorphismcopy-constructor

解决方案


推荐阅读