陈柏凉 2022-02-08 14:30 采纳率: 86.7%
浏览 38
已结题

后置递增运算符重置报错

#include <iostream>
using namespace std;

class MyTeger{
    
public:

    friend ostream& operator<<(ostream &cout,MyTeger &p);
    MyTeger &operator++();
    MyTeger operator++(int);
            
private:
    int m_A;
    int m_B;
};

int main(){
    
    MyTeger p1;

    p1++;
    cout<<++p1;
这里前置++正确,但是后置++就报错,请问为什么呢?
    return 0;
} 

//左移运算符重载 
ostream& operator<<(ostream &cout,MyTeger &p){
    cout<<"m_A="<<p.m_A<<"  m_B="<<p.m_B<<endl;
    return cout;
}

//前置递增 
MyTeger &MyTeger:: operator++(){        
    m_A++;
    m_B++;
    return *this;
}

//后置递增 
MyTeger MyTeger::operator++(int){
    MyTeger temp=*this;
    m_A++;
    m_B++; 
    return temp;;
}

展开全部

  • 写回答

1条回答 默认 最新

  • _GX_ 2022-02-08 14:42
    关注

    operator<<()第二个参数类型应改为const MyTeger&

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 2月16日
  • 已采纳回答 2月9日
  • 创建了问题 2月8日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部