不应该将Postfix运算符视为二元运算符

Jon*_*Mee 0 c++ standards binary-operators unary-operator postfix-operator

后缀运算符采用int参数.关于为什么会有一个问题,似乎答案是:" 因为Bjarne Stroustrup这么说 "

我对这个答案感到不舒服.如果Bjarne Stroustrup需要一些东西来解决编译器的行为方式不同,为什么他不能只关闭运算符是否返回引用?它让我质疑:

  1. 为什么我不能这样做: foo++ 13;
  2. 为什么int参数默认为1
  3. 为什么这被认为是一元运算符,需要一个论证

Nat*_*ica 6

如果Bjarne Stroustrup需要一些东西来解决编译器的行为方式不同,为什么他不能只关闭运算符是否返回引用?

因为您不能基于其返回类型重载函数.函数可以重载的参数,const限定和参考资格

为什么我不能这样做: foo++ 13;

因为(int)参数只是用于重载解析.您不接受它或使用参数.

为什么int参数默认为1

它再次没有被使用.只是告诉编译器它是前缀还是后缀版本.

为什么这被认为是一元运算符,需要一个论证

它实际上不需要争论.该参数仅用于使它们不同.它只影响并处理一个操作数,因此它是一元运算符.