使用VC6打开考生文件夹下的工程proj1。此工程包含一个源程序文件mainl.cpp,但该程序运行有问题。请改正主函数中的错误,使程序的输出结果是: member = 0 member = 5 member = 10 源程序文件

admin2009-01-15  27

问题 使用VC6打开考生文件夹下的工程proj1。此工程包含一个源程序文件mainl.cpp,但该程序运行有问题。请改正主函数中的错误,使程序的输出结果是:
   member = 0
   member = 5
   member = 10
   源程序文件 mainl.cpp 清单如下:
   //mainl.cpp
   #include <iostream>
   using namespace std;
   class MyClass
   {
   public:
      MyClass(int i)
      {
         member=i;
      }
      void SetMember(int m)
      {
         member=m;
      }
      int GetMember()const
      {
         return member;
      }
      void Print()  const
      {
         cout<<"member="<<member<<end1;
      }
   private:
      int  member;
   };
   int main()
   {
      /***************found***********/
      MyClass obj1;
      obj1. Print();
      MyClass obj2(3);
      /***************found***********/
      obj1.member = 5;
      /***************found***********/
      MyClass. SetMember(10);
      obj1. Print();
      obj2. Print();
      return 0;
   }

选项

答案修改后的主函数应该为: int main() { MyClass obj1(0); obj1.Print(); MyClass obj2(3); obj1.SetMember(5); obj2.SetMember(10); obj1.Print(); obj2.Print(); return 0; }

解析 本题主要考核类与对象的应用。程序中出现了3个出错标识符,说明此程序有3处错误。
   第1处错误:“MyClass obj1;obj1.Print();”,此时对象。obj1没有给出初始化值,所以应该改为“Myclass obj1(0);obj1.Print();”。
   第2处错误:“obj1.member=5;”,由于类MyClass中,数据成员member是私有成员不能通过类的对象。obj1访问。所以应该改为“obj1.SetMember(5);”。
   第3处错误:“MyClass.SetMember(10);”,此处MyClass是一个类名,这样的访问方式不合法,应该改为“obj2.SetMember(10);”。
转载请注明原文地址:https://kaotiyun.com/show/TKID777K
0

最新回复(0)