C++运算符重载,表达式中的空格规则



我想学习规则(如果有的话(关于使用空格来编写正确的运算符重载

我见过不同的形式:

T operator+(T t1, T t2)   /* etc. */
T operator+ (T t1, T t2)  /* etc. */
T operator +(T t1, T t2)  /* etc. */
T operator + (T t1, T t2) /* etc. */

我说的是operator关键字、运算符和第一个括号之间的空格。

哪一个是正确的?比其他人更喜欢什么?他们中的一些人错了吗?或者,在某些情况下他们中的某些人是对的,在其他情况下是错的(反之亦然(?

简而言之:空格在这里(在这个特定的主题中(有什么特殊的意义吗?

如果是,何时以及为什么?如果没有,什么是最佳实践?

除了在字符和字符串文字中,C++代码中唯一一个空格重要的地方是分离将(或可能(以其他方式合并的标记。

在您的情况下,三个标记operator+(之间有明显的分隔,因此添加的空格字符对编译器解释声明的方式没有任何影响。

但是,类似Toperator+(T t1, T t2)的内容是无效的,因为Toperator现在将被视为单个(标识符(令牌。

至于哪一个是";最佳"–这实际上是一个品味和意见的问题,尽管cppresence通常使用";没有空间";重载声明的选项。

相关内容

  • 没有找到相关文章

最新更新