请使用VC6或使用[答题]菜单打开考生文件夹proj1下的工程proj1,此工程中含有一个源程序文件proj1.cpp。其中位于每个注释“//ERROR ****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
This object is no.1
注意:只修改注释“//ERROR ****found****”的下一行语句,不要改动程序中的其他内容。
//proj1.cpp
#include <iostream>
using namespace std;
class MyClass
public:
MyClass ():count (0) cout<<"Thisobject is";
//ERROR ********found********
void Inc () const
cout<<"no."<<++count<<endl;
private:
//ERROR ********found********
int count=0;
;
int main ()
MyClass * obj=new MyClass;
//ERROR ********found********
*obj.Inc();
return 0;
参考答案:(1)void Inc()
(2)int count;
(3)obj->Inc();
解析: 主要考查的是MyClass类,其中涉及构造函数、成员函数、私有成员及类的指针。const用于限定变量的值不发生改变,const函数的定义要谨慎,确保函数体内没有成员值的改变。私有成员只能声明不能初始化,只有通过构造函数或者成员函数来初始化。
(1)考查考生对const的掌握,在Inc函数的函数体{cout<<"no."<<++count<<endl;}中,有语句++count,将使私有成员count的值发生改变,因此该函数不能使用const修饰。
(2)考查私有成员,在定义类时,私有成员只能声明不能初始化。
(3)主要考查考生对类的指针的掌握,指针调用类的成员函数时要使用标识符“->”,而不能使用“.”。
主要考查考生对const语法、私有成员及类的指针的理解。私有成员在类中只能声明不能初始化,这是最基础的知识,只要认真看程序一般没问题。判断一个函数是否为const函数关键看函数体内是否有成员值发生改变,如果发生改变,则不能用const修饰。