使用VC6打开考生文件夹下的工程proj1。此工程包含一个源程序文件mainl.cpp,但该程序运行有问题。请

题目

使用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; }
修改后的主函数应该为: 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);”。
更多“使用VC6打开考生文件夹下的工程proj1。此工程包含一个源程序文件mainl.cpp,但该程序运行有问题。请 ”相关问题