33,311
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
using namespace std;
class Screen
{
private:
int date;
public:
Screen()
{
date = 0;
}
Screen* up()
{
date++;
return this;
}
int print(){ return date; }
Screen* print_p(){ return this; }
};
int main()
{
Screen text;
Screen *p;
p = &text;
if (p == text.up()->print_p())
cout << "yes" << endl;
else
cout << "No" << endl;
return 0;
}
原因很简单,Screen up()中你返回*this,这一步会复制一个对象,这样在内存中就会存在两个不一样的对象,地址当然不会一样,如果照我上面的代码返回指针,就不会有这个问题