是否可以执行以下操作:
dtype //contains data type information
stack<dtype> st; // stack declartion
我想动态决定堆栈的类型。是否可以在c ++中执行此操作?
答案 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);
}