c ++

时间:2016-02-22 11:27:35

标签: c++ stl type-declaration

是否可以执行以下操作:

dtype            //contains data type information  
stack<dtype> st; // stack declartion

我想动态决定堆栈的类型。是否可以在c ++中执行此操作?

1 个答案:

答案 0 :(得分:2)

是的,这是可能的。出于这个原因,您可以使用polimorphism,并将指向基类的指针作为stak模板的参数。然后运行时,您可以决定要分配的类型对象。重要的是它应来自基类。

class Object;
class A : public Object;
class B : public Object;
std::stack<Object*> buf;
if (...)
{
   buf.push(new A);
} else
{
   buf.push(new B);
}