A-A+

使用VC6打开考生文件夹下的工程test35_1 此工程包含一个源程序文件test35_1.

2022-08-05 22:01:49 问答库 阅读 172 次

问题详情

使用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)错误: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>),……{<派生类构造函数体>}”,所以应将“::”改为规定的“:”。

考点:工程,源程序