使用VC6打开考生文件夹下的工程test35_1,此工程包含一个源程序文件test35_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为: 400 40 源程序文件test35_1.cpp清单如下:

admin2010-02-08  9

问题 使用VC6打开考生文件夹下的工程test35_1,此工程包含一个源程序文件test35_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为:
   400
   40
   源程序文件test35_1.cpp清单如下:
       #include <iostream.h>
       class Student
       {
       public:
        Student(int xx){x=xx;}
        virtual float calcTuition();
       /*****************  found  *****************/
       private:
        int x;
       };
       float Student::calcTuition()
       {
        return float(x’x);
       }
       /*****************  found *****************/
       class GraduateStudent::public Student
       {
       public:
       /*****************  found *****************/
        GraduateStudent(int xx) ::Student(xx){}
        virtual float calcTuition();
       };
       float GraduateStudent::calcTuition()
       {
        return float(x*2);
       }
       void main()
       {
        Student s(20);
        GraduateStudent gs(20);
        cout<<s.calcTuition()<<end1;
        cout<<gs.calcTuition()<<end1;
       }

选项

答案(1)错误:private: 正确:protected: (2)错误:class GraduateStudent::public Student 正确:class GraduateStudent:public Student (3)错误:GraduateStudent(int XX)::Student(xx){} 正确:GraduateStudent(int xx):Student(xx){}

解析 (1)本题考查点为派生类对基类成员的访问。派生类中的成员不能访问基类中的私有成员,只可以访问基类中的公有成员和保护成员。
(2)派生类的一般格式“class<派生类名>:<继承方式1><基类名1>,……{<派生类新定义成员>};”,所以应将“::”改为规定的“:”,  “::”是作用域运算符,用来标识某个成员属于某个类。
(3)派生类构造函数在类体内定义的一般格式“<派生类名>:<基类名1>(<参数表1>),……{<派生类构造函数体>}”,所以应将“::”改为规定的“:”。
转载请注明原文地址:https://kaotiyun.com/show/57ID777K
0

最新回复(0)