当前位置: 答题翼 > 问答 > 计算机类考试 > 正文
目录: 标题| 题干| 答案| 搜索| 相关
问题

阅读下列说明 C++代码和运行结果 填补代码中的空缺(1)~(5) 将解答填入答题纸的对应栏内。 【说


阅读下列说明、C++代码和运行结果,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 对部分乐器进行建模,其类图如图5-1所示,包括:乐器(Instrument)、管乐器(Wind)、打击乐器(Percussion)、弦乐器(Stringed)、木管乐器(Woodwind)、铜管乐器(Brass)。 图5-1 类图 下面是实现上述设计的C++代码,其中音乐类(Music)使用各类乐器(Instrument)进行演奏和调音等操作。

【C++代码】 include<iostream> using namespace std; enum Note { /* 枚举各种音调 */ MIDDLE_C, C_SHARP, B_FLAT }; class Instrument{ /* 抽象基类,乐器 */ public: (1) ; //play函数接口 virtual void adjust()=0; //adjust函数接口 }; class Wind (2) { public: void play(Note n) { cout<<"Wind.play()"<<n<<end1; } void adjust() { cout<<"Wind.adjust()"<<end1; } }; /* 类Percussion和Stringed实现代码略 */ class Brass (3) { public: void play(Note n) { cout<<"Brass.play()"<<n<<end1; } void adjust() { cout<<"Brass.adjust ()"<<end1; } }; class Woodwind : public Wind { public: void play(Note n) { cout<<"Woodwind.play()"<<n<<end1; } }; class Music { public: void tune(Instrument* i) { i->play(MIDDLE_C); } void adjust(Instrument* i) { i->adjust(); } void tuneAll((4) e[], int numIns) { /* 为每个乐器定调 */ for(int i=O; i<numlns; i++) { this->tune(e[i]); this->adjust(e[i]); } } }; /* 使用模板定义一个函数size,该函数将返回数组array的元素个数,实现代码略 */ int main() { Music* music= (5) Music(); Instrument* orchestra[]={ new Wind(), new Woodwind() }; music->tuneAll(orchestra, size(orchestra)); /* size数组orchestra的元素个数 */ for (int i=0; i<size (orchestra), i++) delete orchestra[i]; delete music; } 本程序运行后的输出结果为: Wind.play() 0 Wind.adjust() Woodwind.play() 0 Wind.adjust()

请帮忙给出正确答案和分析,谢谢!

参考答案
您可能感兴趣的试题
  • 阅读以下说明和C函数,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明1】

  • 阅读以下说明和 C 代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 下面的代码

  • 阅读以下说明和 C 代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 对一个整数序列

  • 阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明1】 递归函数is_elem(

  • 阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】 某文本文件中保存

  • 阅读以下说明和C语言代码 回答问题1至问题3 将解答填入对应栏内。 【说明】 在实时系统中 许多控制