首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >C++中的运算符优先级重载

C++中的运算符优先级重载
EN

Stack Overflow用户
提问于 2017-03-07 15:43:36
回答 1查看 2.1K关注 0票数 5

为什么在C++中重载运算符时不能更改运算符的优先顺序?例如,如果你有一个类,在乘法之前做加法是有意义的,那么如何使加法运算符具有比乘法运算符更高的优先级呢?

这与这个问题Operator overloading and precedence不同,因为我问的是为什么,以及如何绕过这个限制。

我倾向于避免编译器定制,只使用C++14标准。第三方库是可以的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-07 15:49:02

传统的编译器设计首先解析语法,然后才能找出每个运算符的来源。

在C++出现之前很久,像YACC这样的编译器设计工具就已经存在了。因此,随着时间的推移,传统编译器遵循的一般原则是先解析源代码的语法,然后尝试找出如何处理每个运算符。因此,编译器首先看到的是语言的结构;而C++标准实际上是想让编写C++编译器成为可能,而不需要重新发明已经发明的每一个轮子。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42652462

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文