将对象列表静态初始化为基类指针

时间:2018-03-25 08:26:11

标签: c++ initialization polymorphism

我想在静态对象列表中创建,其中列表包含指针或对基类的引用。此列表将在命名空间范围内为常量静态。

列表可以是std :: vector,std :: array是原始数组。该列表旨在作为一种查找表,我必须从中创建多个。因此,我正在寻找简单易读的初始化。

我知道我们可以做到:

static MyObject Foo(1);
static MyObject* pFoo(&foo);

创建一个这样的数组是不可能的,我本质上喜欢做的是:

static std::vector<MyObject*> objects = { &MyObject(1), &MyObject(2) }

甚至更好地使用智能指针。但是这是不可能的,因为MyObject是临时的,并且不允许在初始化器对象列表中使用静态。

有没有其他方法可以直接创建带有指针或对基类的引用的静态列表?

C ++ 14或C ++ 17不是一个选项。

0 个答案:

没有答案