gpt4 book ai didi

c++ - 如何制作一个全部继承自一个基类的对象列表

转载 作者:搜寻专家 更新时间:2023-10-31 00:59:56 25 4
gpt4 key购买 nike

我有一个主要的抽象类和 4 个子类,它们都继承自抽象类。我想制作一个列表,其中的元素可以是这 4 个类中的任何一个。

测试1.h

class Test {
public:
Test();
virtual void someFunc();

void getTest();
void setTest(int test);

protected:
int test;
};

测试2.h:

#include "Test.h"

class Test2 : public Test{
public:
Test2();
void someFunc();

int otherFunc();

};

还有Test3、Test4、Test5...

源.cpp:

#include <iostream>
#include "Test1.h"
#include "Test2.h"
#include "Test3.h"
#include "Test4.h"
#include "Test5.h"

int main() {
list<Test> testList; //does not work
Test2 t = Test2();
Test3 t3 = Test3();
Test4 t4 = Test4();
testList.push_back(t);
testList.push_back(t4);
}

有没有办法制作一个可以包含所有这些元素的列表?

最佳答案

您可以创建基类 Test 指针的 vector ,例如:

std::vector<Test*>

如果可以的话,我宁愿推荐使用智能指针,例如:

std::vector<std::unique_ptr<Test>>

关于c++ - 如何制作一个全部继承自一个基类的对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32339603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com