C++中自增运算符的重载
时间: 2023-11-14 19:23:04 浏览: 106
自增运算符重载
在C++中,自增运算符可以被重载为成员函数或全局函数。自增运算符的重载函数必须返回一个值,通常是一个引用,以允许连续调用该运算符。
下面是一个示例,演示如何重载自增运算符 ++ 作为成员函数:
```cpp
class Number {
public:
Number(int value = 0) : m_value(value) {}
Number& operator++() {
m_value++;
return *this;
}
int getValue() const { return m_value; }
private:
int m_value;
};
int main() {
Number n(5);
++n;
cout << n.getValue() << endl; // 输出 6
return 0;
}
```
在上面的示例中,Number 类重载了自增运算符 ++ 作为成员函数。重载函数使用前缀形式,即 ++n。它将 m_value 成员变量递增一次,然后返回 *this 的引用,允许连续调用该运算符。
下面是一个示例,演示如何重载自增运算符 ++ 作为全局函数:
```cpp
class Number {
public:
Number(int value = 0) : m_value(value) {}
friend Number& operator++(Number& num) {
num.m_value++;
return num;
}
int getValue() const { return m_value; }
private:
int m_value;
};
int main() {
Number n(5);
++n;
cout << n.getValue() << endl; // 输出 6
return 0;
}
```
在上面的示例中,Number 类重载了自增运算符 ++ 作为全局函数。重载函数使用前缀形式,即 ++n。它将 Number 对象的 m_value 成员变量递增一次,然后返回 Number 对象的引用,允许连续调用该运算符。注意,这里使用了 friend 关键字,以便访问 Number 类的私有成员变量 m_value。
阅读全文