操作题   请使用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 <<'This object 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修饰。