使用VC6打开考生文件夹下的工程ms9_1 此工程包含一个源程序文件test9_1.cpp
问题详情
使用VC6打开考生文件夹下的工程ms9_1,此工程包含一个源程序文件test9_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
4,5
20
源程序文件test9_1.cpp清单如下:
include<iostream.h>
class A
{
protected:
int n,m;
public:
void set(int a,int b){m=a; n=b;)
void show(){cout<<m<<","<<n<<endl;)
/**********found*********/
}
class B:public A
{
int s;
public:
void set(){s=m*n;)
void shows(){cout<<s<<endl;)
};
void main()
{
B b;
/**********found**+******/
b.set();
b.show();
b.set();
/*********found**********/
b.show();
}请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:(1)错误:}正确:};(2)错误:b.set();正确:b.A::set(45);(3)错误:b.show();正确:b.shows();
(1)错误:}正确:};(2)错误:b.set();正确:b.A::set(4,5);(3)错误:b.show();正确:b.shows(); 解析:(1)主要考查考生对类定义格式的掌握,类的结尾应该使用“;”;
(2)主要考查考生对基类与派生类函数调用关系的掌握,根据所要求的输出结果,应该调用的函数为类A的set,而不是类B自身的set函数,应该避免调用的二义性;
(3)主要考查考生对继承与派生的理解,由所要求输出结果可知正确:b.shows()。