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