阅读下列说明、C++代码和运行结果,填补代码中的空缺,将解答填入答题纸的对应栏内。 [说明] 对部分乐器进行建模,其类图如下图所示,包括:乐器(Instrument)、管乐器(Wind)、打击乐器(Percussion)、弦乐器(Stringed)、木管乐器(Woodwind)、铜管乐器(Brass)。 类图 下面是实现上述设计的C++代码,其中音乐类(Music)使用各类乐器(Instrument)进行演奏和调音等操作。 usingnamespacestd;enumNote(/*枚举各种音调*/MIDDLE_C,C_SHARP,B_FLAT};classInstrument{/*抽象基类,乐器*/public:______;//play函数接口virtualvoidadjust()=0;//adjust函数接口};classWind______{public:voidplay(Noten){cout<<"Wind.play()"<<n<<endl;}voidadjust(){cout<<"Wind.adjust()"<<endl;});/*类Percussion和Stringed实现代码略*/classBrass______{public:voidplay(Noten){cout<<"Brass.play()"<<n<<endl;}voidadjUSt(){cout<<"Brass.adjust()"<<endl;)};classWoodwind:publicWind{public:voidplay(Noten){cout<<"Woodwind.play()"<<n<<endl;}};classMusiC{public:voidtune(Instrument*i){i->play(MIDDLE_C.;}voidadjust(Instrument*i){i->adjust();}voidtuneAll(______e[],intnumIns){/*为每个乐器定调*/for(inti=0;i<numIns;i++){this->tune(e[i]);this->adjust(e[i]);}}};/*使用模板定义一个函数size,该函数将返回数组array的元素个数,实现代码略*/intmain(){Music*music=______Music();Instrument*orchestra[]={newWind(),newWoodwind()};music->tuneAll(orchestra,size(orchestra));/*size返回数组orchestra的元素个数*/for(inti=0;i<size(orchestra);i++)deleteorchestra[i];deletemusic;} 本程序运行后的输出结果为: Wind.play()0Wind.adjust()Woodwind.play()0Wind.adjust()
virtual void play(Noten)=0 :public Instrument :public Wind Instrument* new