红色警戒3大逃杀:关于返回值为&的
来源:百度文库 编辑:高考问答 时间:2024/05/15 11:34:38
#include <iostream>
using namespace std;
class A
{
public:
A();
int& get();
void print(){cout<<i<<endl;};
private:
int i;
};
A::A()
{
i = 0;
}
int& A::get()
{
return i;
}
void main()
{
A a;
a.print();
int x = a.get();
x = 1;
a.print();
}
写了上面的程序。我的理解是输出为0 1,但是输出是0 0,如果返回值是&时是什么情况呢
using namespace std;
class A
{
public:
A();
int& get();
void print(){cout<<i<<endl;};
private:
int i;
};
A::A()
{
i = 0;
}
int& A::get()
{
return i;
}
void main()
{
A a;
a.print();
int x = a.get();
x = 1;
a.print();
}
写了上面的程序。我的理解是输出为0 1,但是输出是0 0,如果返回值是&时是什么情况呢
改为:
void main()
{
A a;
a.print();
int &x = a.get();//注意x变成&x
x = 1;
a.print();
}
现在就应该是“0 1”了。