写点什么

重载 ++ 运算符分别实现 i++ 和 ++i

作者:linux大本营
  • 2023-04-26
    湖南
  • 本文字数:487 字

    阅读完需:约 2 分钟

重载++运算符可以使用类的成员函数或者友元函数实现。


  1. 使用类的成员函数实现


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++; // 调用后置++
复制代码


  1. 使用友元函数实现

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

用户头像

还未添加个人签名 2020-11-26 加入

C/C++linux服务器开发群 812855908

评论

发布
暂无评论
重载++运算符分别实现i++和++i_运算符_linux大本营_InfoQ写作社区