如何创建不同类型的变量的堆栈?

时间:2015-10-17 22:11:16

标签: c++

有人可以帮助我创建一个处理不同类型变量的堆栈。我有一个BNF语法,我需要推入堆栈,下面是我需要推入堆栈的东西

1)+, - ,/,*

2)整数 - 0,1,2..9

3)字符 - a,b..z,A,B..Z

4)$ Sign,括号(打开,关闭),下划线

我不确定我的下面尝试是否能满足以上所有要求。如果我错了,请纠正我。

stack<int,string>mystack

1 个答案:

答案 0 :(得分:3)

您需要使用多态并将动态类型推送到堆栈中。这可以是boost.variant之类的形式,也可以是简单的类层次结构,并通过 smart 指针将项目存储在堆栈中。这不是一个详尽的清单。

C ++不支持动态变量作为核心语言项。您可以使用虚函数和继承等技术创建它们,或者键入擦除。