请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,此工程中包含一个头文件number.h,其中包含了类N啪ber、OctNumber、HexNumber和DecNumber的声明;包含程序文件number.cpp,其中包含了上述类的

admin2020-05-14  16

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,此工程中包含一个头文件number.h,其中包含了类N啪ber、OctNumber、HexNumber和DecNumber的声明;包含程序文件number.cpp,其中包含了上述类的成员函数toString的定义;还包含程序文件proj2.cpp,它以各种数制格式显示输出十进制数11。请在程序中的横线处填写适当的代码并删除横线,以实现上述功能。此程序的正确输出结果应为:
013,11,OXB
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
//mumber.h
classNumber{
protected:
intn;
staticcharbuf[33];
public:
Number(intk):n(k){)
//**********found**********
________;
//纯虚函数toString的声明
};
classHexNumber:publicNumber{
//16进制数
public:
//**********found**********
________//构造函数,参数名为k
constchar*toString()const;
};
classOctNumber:publicNumber{
//八进制数
public:
OctNumber(intk):Number(k){}
constchar*toString()const;
};
classDecNumber:publicNumber{
//十进制数
public:
DecNumber(intk):Number(k){}
constchar*toString()const;
},
/Imumber.cpp
#include"Number.h"
#include
#include
#include
usingnamespacestd;
charNumber::buf[33]="";
constchar*HexNumber::toString
()const
{
strstreamstr(buf,33);
str<returnbuf;
}
constchar*OctNumber::toString
()const
{
strstreamstr(buf,33);
str<returnbuf;
}
constchar*DecNumber::toString
()const
{
strstreamstr(buf,33);
Str<returnbuf;
}
________;//按既定的数制显示输出参数对象number的值
}
intmain()
{
show(OctNumber(ii));cout<<’,’;
show(DecNumber(11));cout<<’,’;
//**********found**********
________;//以16进制格式输出
十进制数11
cout<return0;
}

选项

答案(1)virtual const char* toString()const = 0 (2)HexNumber(int k) : Number(k) {} (3)cout<< number.toString() (4) show(HexNumber(11))

解析 (1)主要考查考生对纯虚函数的掌握,参考在派生类中该函数的定义:const char* toString()const;,可知纯虚函数应该写为:virtual const char* toString()const = 0。
(2)主要考查考生对构造函数的掌握,构造函数应使用成员列表初始化。
(3)主要考查考生对纯虚函数的掌握,程序要求按既定的数制显示输出参数对象number的值,直接调用纯虚函数,可以使派生类调用自身定义的函数。
(4)主要考查考生对派生类的掌握,使用十六进制的派生类初始为11,就可以调用该派生类的toString函数。
转载请注明原文地址:https://kaotiyun.com/show/Qr8p777K
0

最新回复(0)