问题
填空题
己知下列程序的输出结果是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;
;
int main()
Foo f;
f.setValue(42);
f.print();
return 0;
答案
参考答案:this->value或Foo::value
解析: 由于Foo类的数据成员和函数的形参名称都是value,如果在函数中直接使用value引用的是形参变量而不是Foo类的数据成员。解决办法有两种:一是通过this指针,在类的成员函数中this代表函数所属对象的指针,即可填this->value;二是通过作用域运算符“::”明确指出访问的是Foo类的成员,所以还可填入Foo::value。