阅读下列说明、C++代码和运行结果,填补代码中的空缺,将解答填入答题纸的对应栏内

最全题库2022-08-02  30

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

选项

答案

解析 virtual void play(Noten)=0
:public Instrument
:public Wind
Instrument*
new
转载请注明原文地址:https://tihaiku.com/congyezige/2425971.html

最新回复(0)