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

admin2010-06-06  18

问题 己知下列程序的输出结果是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。
转载请注明原文地址:https://jikaoti.com/ti/EjW0FFFM
0

随机试题
最新回复(0)