c++类递增运算符重载在类里面初始化加int并且在private中也加int会出现随机数


#define  _CRT_SECURE_NO_WARNINGS 
#include<iostream>
using namespace std;
class Myinteger {
    friend ostream& operator<<(ostream& cout, Myinteger myint);
public:
    Myinteger()
    {
        int   m_Num = 0;
    }
    Myinteger &operator--()
    {
        m_Num--;
        return *this;
    }
    Myinteger operator--(int)
    {
        Myinteger temp = *this;
        m_Num--;
        return temp;
    }
    
private:
    int m_Num;

};
ostream& operator<<(ostream& cout, Myinteger myint)
{
    cout << myint.m_Num << endl;
    return cout;
}
void test01()
{
    Myinteger myint;
    cout << --myint << endl;
    cout << myint << endl;
    
}
void test02()
{
    Myinteger myint;
    cout << myint-- << endl;
    cout << myint << endl;

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


Myinteger()
{
int m_Num = 0;

中的 int去掉
你这等于在构造函数里又定义了一个临时变量,而类的成员变量m_Num并没有被赋予初始值0,所以还是一个随机乱码而已
///
写程序还得细心才行啊

img

你构造函数里加int等于重新定义了一个同名变量,那里初始化的是新定义的局变量,真正的类成员变量没有初始化,所以是随机的