【发布时间】:2011-07-05 23:41:03
【问题描述】:
我在 C++ 方面有一点经验。我知道如何重载加号和什么不,但想重载空间运算符。
例如:
MyObject obj();
result = obj - foo; // This would be treated as a normal '-' operation.
result = obj-foo; // This would invoke code which throws an assert at runtime
这将使我能够强制执行我试图为我的团队制定的某些风格准则。
【问题讨论】:
-
首先obj是函数名,不是对象。
-
err 我不认为“空格”是一个运算符,它是解析器对事物进行标记的一种方式,充其量。
-
空间不是运算符。使用实际的静态代码分析,而不是复杂的运算符重载。
-
这个问题在几个层面上都令人恐惧。最起码的是,声称有一点 C++ 经验(含糊不清,但似乎包括有关运算符重载的知识)的人不知道空格完全无关紧要,即使假设它是一个运算符。
-
即使空间运算符存在,在运行时执行编码准则也只是自找麻烦。在这种情况下,如果不遵循编码准则,用户将遇到运行时崩溃。
标签: c++ operator-overloading c++11