已知下列程序的输出结果是42, 请将画线处缺失的部分补充完整。 #include<iostream> using namespace std; class Foo int value; public: F

admin2009-03-16  20

问题 已知下列程序的输出结果是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,所以在函数中直接使用value引用的是形参变量而不是 Foo类的数据成员。此时,只有两个办法可以引用到Foo类的数据成员:一是通过this指针,在类的成员函数中this代表函数所属对象的指针,故可以填this->value。二是通过作用域运算符“::”明确指出访问的是Foo类的成员,故还可以填Foo::value。
转载请注明原文地址:https://kaotiyun.com/show/Eojp777K
0

最新回复(0)