多个对象的列表c ++

Owe*_*enz 0 c++ class list object

我在使用时遇到了一些问题std::list.我可以很好地使用它与"简单"类型的数据列表,或一种类型的对象列表.

我想创建一个包含三种不同类型对象的列表.例如,有三种类型的对象:类p1,类p2,类p3.我想创建一个包含这三个对象的列表.

class p1 {
...
};

class p2 {
...
};

class p3 {
...
};

int main() {
    std::list<whatshouldiInserthere?> namelist;
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试过模板,但没办法.你能发布一个示例源代码吗?

Bli*_*ndy 9

  • 您可以使用列表void *,放弃优雅而现代的解决方案
  • 您可以改为从基类派生所有对象,然后使列表包含指向该基类的指针
  • 您可以使用boost::variantboost::any作为一种类型安全void *.这实际上比听起来要好得多,因为感谢模板魔术它没有额外的间接级别,并且仍然不需要相同的基类