使用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()中没有修改类的对象,但是它存在修改类的成员变量的可能性。