如何正确实现和访问运算符的各种自定义枚举器
How to correctly implement and access various custom enumerators of operators?
我正在尝试创建几个枚举,以便根据优先级快速比较已解析的令牌。
这是我目前在main.cpp:中的代码
enum openParen0 : char { op = '(', ob = '[', oc = '{' };
enum closedParen0 : char { cp = ')', cb = ']', cc = '}' };
enum oper1 : char { plus = '+', minus = '-' };
enum oper2 : char { mult = '*', div = '/', mod = '%' };
openParen0 Open = op;
closedParen0 Closed = cp;
oper1 Operator1 = plus;
oper2 Operator2 = mult;
int problem, num1 = 5, num2 = 2;
problem = Open + num1 + Operator1 + num1 + Closed + Operator2 + num2;
cout << Open << num1 << " " << Operator1 << " " << num1 << Closed << " " << Operator2 << " " << num2 << " =" << endl;
cout << problem;
我只是想知道如何修改我的代码,以便正确地输出基于枚举的计算。我是这个概念的新手,所以我只是想了解它
这是我得到的代码:
(5 + 5) * 2 =
178
显然,我期待的是:
(5 + 5) * 2 =
20
谢谢。
当您尝试使用cout<<op;
时,输出是对应于"("的ASCII值
Type char是一个整数类型,通常包含基本执行字符集的成员——默认情况下,它是Microsoft C++中的ASCII。
根据文件:
类型
枚举器的基本类型;所有枚举器都相同底层类型。可以是任何积分类型。
就我而言,你不能直接列举符号。
相关文章:
- 如何正确实现和访问运算符的各种自定义枚举器
- C++:如何在声明枚举类的模板类主体之外定义枚举类?
- 如何在 std::p air 中使用 System::Guid 和自定义枚举?
- 当在基类中定义枚举时,qml中的Q_ENUM未定义值
- 在 FlatBuffer 中使用自定义枚举
- 在宣布后定义枚举 - 比利亚利
- 是否可以定义一个宏来定义枚举类和返回枚举元素计数的 GetCount() 方法
- 类型定义枚举"member"
- 使用对其他枚举值的操作定义枚举元素值
- 具有自定义枚举C++类
- 是否可以手动定义枚举类的转换
- 我们可以在函数中定义枚举吗?
- 在类内部的结构中定义枚举
- 在 c++ 中定义枚举类型的静态变量
- 重新定义枚举的比较运算符
- 在类或文件中定义枚举
- 可以根据同一枚举类型中的其他枚举器来定义枚举器吗
- 检查是否已定义枚举成员
- 请求从 'KanjiCard*' 转换为非标量类型'KanjiCard'(自定义枚举)
- Visual Studio 2013:自定义枚举的链接器错误