《vc++课件》多态

多恋
多态

主要内容 ■多态的实现类型 联编的概念 静态联编和动态联编的区别 虚函数的声明
◼ 多态的实现类型 ◼ 联编的概念 ◼ 静态联编和动态联编的区别 ◼ 虚函数的声明 主要内容

■由乐器类 Instrumen派生出管乐器类Wind、铉乐器类 Stringed、打击乐器类 Percussion 请给出图中各类的定义,根据定义编写一个关于奏乐 的程序。 Instrument playo Wind Stringed Percussion playo playo playo
Instrument play() Wind play() Stringed play() Percussion play() ◼ 由乐器类Instrument派生出管乐器类Wind、铉乐器类 Stringed、打击乐器类Percussion。 ◼ 请给出图中各类的定义,根据定义编写一个关于奏乐 的程序

Instrument类的定义: class Instrument public void playo i cout<< instrument play<<endl Wind类的定义: class Wind: public Instrument public void play()∥改写基类的 Playa函数 i cout<< wind play?<<endl;
Instrument类的定义: class Instrument { }; public: void play() { cout<<“instrument play”<<endl; } Wind类的定义: class Wind:public Instrument { }; public: void play() //改写基类的play()函数 { cout<<“wind play”<<endl; }

Stringed类的定义: class Stringed: public Instrument public void playo /改写基类的 Iplay(函数 i cout<< stringed play'<<endl; Percussion类的定义: class percussion public Instrument public void play0改写基类的 playO函数 i cout<< percussion play <<endl; j
Stringed类的定义: class Stringed:public Instrument { }; public: void play() //改写基类的play()函数 { cout<<“stringed play”<<endl; } Percussion类的定义: class Percussion:public Instrument { }; public: void play() //改写基类的play()函数 { cout<<“percunssion play”<<endl; }

void tune( Wind i)/管乐器奏乐 iplay void tune( Stringed i)/铉乐器奏乐 i. playo void tune( Percussion i)/打击乐器奏乐 playo
void tune(Wind i) //管乐器奏乐 { } i.play(); …… void tune(Stringed i) //铉乐器奏乐 { } i. play(); …… void tune(Percussion i) //打击乐器奏乐 { } i. play(); ……

void main( void tune( wind i) Wind flute i playo Stringed violin Percussion drum void tune(Stringed i) tune(flute) tune(violin) playo tune(drum) void tune(Percussion i) 如果增加乐器种类,则 同样的代码要重复多次 i playo; 只有参数不同!
void main() { } Wind flute; Stringed violin; Percussion drum; tune(flute); tune(violin); tune(drum); 如果增加乐器种类,则 同样的代码要重复多次, 只有参数不同! void tune(Wind i) { } i.play(); void tune(Stringed i) { } i. play(); void tune(Percussion i) { } i.play(); …… …… ……

改进1: void tune( nstrument&i)/向上转型 class Instrument payO-际{ void play( i cout<< instrument play?< <endl; void maino Wind flute Stringed violin class Wind Percussion drum, tune(flute) 希望 void playo tune(violin) i cout<<Wind play<<endl;) tune(drum)
改进1: void tune(Instrument& i) //向上转型 { } i.play(); …… void main() { } Wind flute; Stringed violin; Percussion drum; tune(drum); tune (flute); tune (violin); class Wind { }; …… void play() { cout<<“Wind play”<<endl; } 希望 class Instrument { }; …… void play() { cout<<“instrument play”<<endl; } 实际

改进2:(在向上转型基础上) void tune( nstrument&i)/向上转型 ●。●● .playo class instrument public virtual void play()∥虚函数 i cout<<instrument play '<<endl; j
改进2:(在向上转型基础上) void tune(Instrument& i) //向上转型 { } i.play(); …… { }; public: virtual void play() //虚函数 { cout<<“instrument play”<<endl; } class Instrument

class Wind: public Instrument public vitual void play)∥ virtual可省略 i cout<< wind play <<endl; class Percussion public Instrument publIc virtual void play/ virtual可省略 i cout<< percussion play?<<endl
class Wind:public Instrument { }; public: vitual void play() //virtual可省略 { cout<<“wind play”<<endl; } class Percussion:public Instrument { }; public: virtual void play //virtual可省略 { cout<<“percunssion play”<<endl; }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《vc++课件》多继承和虚基类.ppt
- 《vc++课件》继承.ppt
- 《vc++课件》虚函数和抽象类.ppt
- 《vc++课件》类的构造和析构.ppt
- 《vc++课件》静态成员和友元.ppt
- 《C++程序设计实验指导书》(第四版)电子课件.doc
- 《MATLAB》课程教学讲稿(PPT电子课件)第四讲 matlab 绘图.ppt
- 《MATLAB》课程教学讲稿(PPT电子课件)第六讲 matlab工具箱.ppt
- 《MATLAB》课程教学讲稿(PPT电子课件)第五讲 matlab句柄绘图.ppt
- 《MATLAB》课程教学讲稿(PPT电子课件)第二讲 MATLAB的数值计算.ppt
- 《MATLAB》课程教学讲稿(PPT电子课件)第三讲 MATLAB的符号运算.ppt
- 《MATLAB》课程教学讲稿(PPT电子课件)第七讲 matlab的程序设计.ppt
- 《MATLAB》课程教学讲稿(PPT电子课件)第一讲 MATLAB语言概述.ppt
- 《MATLAB》课程教学讲稿(PPT电子课件)第9章 MATLAB符号计算.ppt
- 《MATLAB》课程教学讲稿(PPT电子课件)第8章 MATLAB数值积分与微分.ppt
- 《MATLAB》课程教学讲稿(PPT电子课件)第7章 MATLAB解方程与函数极值.ppt
- 《MATLAB》课程教学讲稿(PPT电子课件)第6章 MATLAB数据分析与多项式计算.ppt
- 《MATLAB》课程教学讲稿(PPT电子课件)第5章 MATLAB绘图.ppt
- 《MATLAB》课程教学讲稿(PPT电子课件)第4章 MATLAB文件操作.ppt
- 《MATLAB》课程教学讲稿(PPT电子课件)第3章 MATLAB程序设计.ppt
- 《vc++课件》模板和IO流.ppt
- 《vc++课件》Windows编程基础.ppt
- 《vc++课件》单文档应用程序设计.ppt
- 《vc++课件》对话式应用程序设计.ppt
- 《vc++课件》c++基础1.ppt
- 《vc++课件》c++基础2.ppt
- 《vc++课件》类的设计和对象的使用.ppt
- 成都理工大学工程技术学院:《C程序设计教程》第一章 C程序概述.ppt
- 成都理工大学工程技术学院:《C程序设计教程》第二章 C程序设计基础.ppt
- 成都理工大学工程技术学院:《C程序设计教程》第三章 程序的控制结构.ppt
- 成都理工大学工程技术学院:《C程序设计教程》第四章 数组.ppt
- 成都理工大学工程技术学院:《C程序设计教程》第五章 指针.ppt
- 成都理工大学工程技术学院:《C程序设计教程》第六章 函数.ppt
- 成都理工大学工程技术学院:《C程序设计教程》第七章 结构体与共用体.ppt
- 成都理工大学工程技术学院:《C程序设计教程》第八章 文件访问.ppt
- 成都理工大学工程技术学院:《C程序设计教程》第九章 变量的作用域与生存期.ppt
- 天津大学:《数据结构 Data Structures》课程PPT教学课件(英文版)Chapter 10 The Disjoint Set ADT.ppt
- 天津大学:《数据结构 Data Structures》课程PPT教学课件(英文版)Chapter 2 Algorithm Analysis.ppt
- 天津大学:《数据结构 Data Structures》课程PPT教学课件(英文版)Chapter 3 Lists.ppt
- 天津大学:《数据结构 Data Structures》课程PPT教学课件(英文版)Chapter 4 Stacks Queues.ppt