使用VC6打开考生文件夹下的工程RevProj4。此工程包含一个源程序文件RevMain4.cpp,但该程序运行有问题。请改正主函数中的错误,使之输出结果为: x=20 源程序文件RevMain4.cpp的清单如下: //RevMain4

admin2009-01-15  38

问题 使用VC6打开考生文件夹下的工程RevProj4。此工程包含一个源程序文件RevMain4.cpp,但该程序运行有问题。请改正主函数中的错误,使之输出结果为:
   x=20
   源程序文件RevMain4.cpp的清单如下:
   //RevMain4.cpp
   #include<iostream>
   using namespace std;
   class MyClass
   {
   public:
      MyClass(int a)
      {
         x=a;
      }
      void setX(int a)
      {
         x=a;
      }
      void print()
      {
         cout<<"x="<<x;
      }
   private:
      int x;
   };
   int main()
   {
      const MyClass obj (10);
   / ************found**************/
      obj.setX(20);
   / ************found**************/
      obj.print();
      return 0;
   }

选项

答案修改程序时可以去掉类对象定义时的const关键词。即: int main ( ) { MyClass obj (10); obj.setX(20); obj.print (); return 0; }

解析 程序中出现了2个出错标识符,说明此程序有2处错误。
   第1处错误:语句“obj.setX(20);”错误。因为类MyClass的对象obj被声明为常对象,因此,不允许修改常对象的成员变量。
   第2处错误:语句“obj.print();”错误。因为类的对象被声明为常对象,因此,不是常成员函数就不能访问常对象的成员变量。虽然成员函数print()中没有修改类的对象,但是它存在修改类的成员变量的可能性。
转载请注明原文地址:https://kaotiyun.com/show/ROID777K
0

最新回复(0)