C++自增运算符进行重载

      在C++中自增运算符分为前置++和后置++。前置++是先进行+1操作,然后返回+1之后的值;后置++是先返回值,然后再进行+1操作。

      仿照《STL源码剖析》,写的自增操作。

#include<iostream>

using namespace std;

 

class My{

private:

int m_i;

public:

friend ostream& operator<<(ostream& os,const My& my);

My(int i):m_i(i){};

 

My& operator++(){

++(this->m_i);

return *this;

}

const My operator++(int){

My temp = *this;

++(*this);

return temp;

}

};

 

ostream& operator<<(ostream& os,const My& my){

os<<'['<<my.m_i<<']'<<endl;

return os;

}

 

       前置++和后置++需要进行运算符重载,貌似按照规定对

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值