填空题
已知下列程序的输出结果是42,请将横线处缺失的部分补充完整。
#include<iostream>
using namespace std;
class Foo{
int value;
public:
Foo():value(0){}
void setValue(int value)
{______=value; ∥给Foo的数据成员value赋值}
void print(){cout<<value;p}
};
int main()
{
Foo f;
gf.setValue(42);
f.print();
return 0;
}
【正确答案】
1、this->value或Foo∷value
【答案解析】
[解析]
由于Foo类的数据成员和函数的形参名称都是value,如果在函数中直接使用value引用的是形参变量而不是Foo类的数据成员,解决办法有两种:一是通过this指针,在类的成员函数中this代表数所属对象的指针,即可填this->value;二是通过作用域运算符“∷”明确指出访问的是Foo类的成员,所以还可入Foo∷value。