c++ - 前缀运算符重载

标签 c++ operator-overloading

我正在使用成员函数重载 ++ 前缀运算符。这是原型(prototype):

Test &operator++();

但是当我像下面这样将它用于我的对象时,我的疑问就来了:

Test t;
++t;

据我所知,对于由成员函数重载的任何运算符,应该在该运算符的左侧 上有同一个类的对象。但是当我调用这个 ++ 前缀重载运算符时,我不需要左侧的 Test 类的任何对象。

为什么?

最佳答案

Test& operator++();

始终是 C++ 标准的前缀运算符。

为了覆盖后缀运算符,您需要使用另一个签名:

Test& operator++(int);

编译器知道这些签名,它会正确地覆盖正确的运算符。

关于c++ - 前缀运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7277394/

相关文章:

c++ - 与函数一起使用时运算符 > 不匹配

c++ - 返回其自身类型的模板类方法的正确签名

c++ - auto的赋值可以不是r值表达式的结果吗?

C++ 将文件权限添加到 Zip 文件

c++ - C++虚函数

c++ - 如何找到某个变量旁边存储的内容

C++ 运算符重载 Int 类型

c++ - 如何在 C++ 中检查确切的类型信息(使用 cv-ref-pointer 特征)?

c++ - 重载双括号函数并在同一个类中使用它?

c++ - 涉及临时对象的运算符重载决策顺序