超越nb 2021-09-03 12:14 采纳率: 57.1%
浏览 52
已结题

c++基础问题,运算符重载



```c++
#include<iostream>
using namespace std;

class Myint
{
public:
    friend ostream&operator<<(ostream &cout, Myint mint);
    Myint()
    {
        m_H = 8;
    }
    //前置重载
    Myint& operator--()
    {
        --m_H;
        return*this;
    }
    //后置重载
    Myint operator--(int)
    {
        Myint temp=*this;
        m_H--;
        return temp;
    }

private:
    int m_H;
};
ostream&operator<<(ostream &cout, Myint min)
{
    cout << min.m_H;
    return cout;
}
void test01()
{
    Myint mint;
    cout <<(mint--)--<< endl;//为什么我的结果是(8,7,6)不应该是(8,6,5)吗,两次自减只用了一次,为什么
    cout << mint-- << endl;
    cout << mint-- << endl;

}
int main()
{
    test01();
    system("pause");
    return 0;
}

```

  • 写回答

1条回答 默认 最新

  • baidu_30233079 2021-09-03 14:56
    关注

    你后置重载25行那里返回的是一个新的对象,所以有一次--操作是对那个新对象。39行你原始的mint其实就是减了一次

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

报告相同问题?

问题事件

  • 系统已结题 9月11日
  • 已采纳回答 9月3日
  • 修改了问题 9月3日
  • 创建了问题 9月3日

悬赏问题

  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题