#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <string>
using namespace std;
class MyInt
{
friend ostream& operator<<(ostream& cout, MyInt myint);
private:
int a=0;
public://前置运算符重载
MyInt operator++()
{
a++;
return *this;
}
MyInt operator++(int)
{
MyInt temp = *this;
a++;
return temp;
}
};
ostream& operator<<(ostream& cout, MyInt myint)
{
cout << myint.a;
return cout;
}
void test_01()
{
MyInt myint;
cout << ++(++myint) << endl;
cout << myint;
}
int main() {
test_01();
}
有几个问题就是:
1.我在重载前置++这个运算符是故意返回的不是引用数据类型,在多次调用++ (如:我在test—01那里写的第一次cout )再次调用cout,为什么值会不一样(第一次值为2,第二次值为1)
2.返回对象时不是拷贝吗,新建了一个对象赋值给了调用者,这里的myint地址不会被修改吗,为什么