问题 问答题

使用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);”。

填空题
选择题