我如何从数组中创建一个新对象,该数组在C 中保存不同的对象
How do I create a new object from an array which holds different objects in c++
我有一个base类" a"和许多派生的类,例如" b"," c"," d"。我需要有一个装有这些对象(或指针)的数组。我有一个函数,该函数将在此数组中输入索引,并且应该在数组中创建一个对象(制作新对象)。我该怎么做呢 ?以下是一个片段,仅显示下面的包装器。
class A
{
};
class B: public A
{
};
class C: public A{
};
class D: public A{
};
static A anArray[] = {B, C,D };
int main() {
`A anObject = myFunction(2);`
}
在上面的代码中,当我调用myfunction时,我应该能够获得新的D
有很多方法可以实现这一目标,
这是一种方法:
#include <memory>
class A {
public:
virtual ~A() = default; // important
};
class B: public A { };
class C: public A{ };
class D: public A{ };
static std::unique_ptr<A> anArray[] = {
std::make_unique<B>(),
std::make_unique<C>(),
std::make_unique<D>()
};
相关文章:
- 将对象数组的引用传递给函数
- 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针
- 在c++中尝试对对象数组进行排序时,出现std:bad_alloc错误
- 类对象数组的问题会导致崩溃
- Arduino C++在构造函数中用参数声明对象数组
- 使用对象数组对 SFML 进行动画处理
- C++ 对象数组堆栈溢出
- 如何将对象数组作为参数传递给模板
- 使用向量初始化参数化构造函数的对象数组
- 如何初始化对象数组?
- C++创建对象数组
- 在对象数组中搜索字符串并返回相应值的函数
- 有没有办法使用该类的构造函数初始化另一个类的私有部分内的对象数组?
- 如何在运行时在对象数组中动态追加新对象C++并打印它们
- 为什么我在声明对象数组时不能使用 -> 运算符?
- 编译时生成应在构造函数中创建的非 constexpr 对象数组
- 使用 C++ 创建对象数组
- 对象数组打印空白字符串
- 重载运算符 [] 用于从对象数组中给出特定索引
- 如何在 C++ 中使用提升属性树从 JSON 文件中读取对象数组