重载 ++ 运算符分别实现 i++ 和 ++i
作者:linux大本营
- 2023-04-26 湖南
本文字数:487 字
阅读完需:约 2 分钟
重载++运算符可以使用类的成员函数或者友元函数实现。
使用类的成员函数实现
class Integer{
public:
Integer& operator++() { // 前置++
++m_value;
return *this;
}
Integer operator++(int) { // 后置++
Integer tmp = *this;
++(*this);
return tmp;
}
private:
int m_value;
};
// 测试代码
Integer i(1);
++i; // 调用前置++
i++; // 调用后置++
复制代码
使用友元函数实现
class Integer{
friend Integer& operator++(Integer& obj); // 前置++
friend Integer operator++(Integer& obj, int); // 后置++
public:
Integer(int value=0): m_value(value) {}
private:
int m_value;
};
Integer& operator++(Integer& obj) {
++obj.m_value;
return obj;
}
Integer operator++(Integer& obj, int) {
Integer tmp = obj;
++obj;
return tmp;
}
// 测试代码
Integer i(1);
++i; // 调用前置++
i++; // 调用后置++
复制代码
相关技术视频教程:c/c++ linux服务器开发/后台架构师免费学习地址
c/c++后端技术交流群:579733396
划线
评论
复制
发布于: 刚刚阅读数: 5
linux大本营
关注
还未添加个人签名 2020-11-26 加入
C/C++linux服务器开发群 812855908
评论