- 1
- 0
- 约9.08千字
- 约 59页
- 2023-11-27 发布于四川
- 举报
* * * * * * * * * * * * * * * * * * * 多态性是指发出同样的消息被不同类型的对象接收时有可能导致完全不同的行为。 这种确定操作的具体对象的过程就是绑定 绑 定 * 1、编译时多态(静态绑定) 指在编译的过程中确定了同名操作的具体操作对象 2、运行时多态(动态绑定) 指在程序运行过程中才动态地确定操作所针对的具体对象。 * 静态绑定 缺点:不经过重新编译程序就无法实现静态绑定。 动态绑定 无需重新编译程序就能够实现动态绑定,不足是时间开销稍大于静态绑定。 两种绑定的优缺点 * 静态绑定举例 兔子逃生 问题引出: Class 兔子 {public: ……... void 逃生(老鹰 a){“兔子蹬鹰”;} void 逃生(狼 b){“动若脱兔”;} …………….. }; 调用函数时,它们的参数都在编码时设定好的,也就是当调用“兔子”类的逃生函数时,传入的参数时“老鹰”还是“狼”的对象,是在编译时确定的。 * 投石探宠物 动态绑定举例 问题引出: 一个小孩得知邻居院子里养了一个宠物,当不知道是何物,于是丢一块石头到邻居院中探明真相。 Class 宠物 {public: void char *speak{cout“zzz”;} …}; Class 狗:public 宠物 {public: void char *speak{cout“miao!miao!”;} …}; Class 猫:public 宠物 {public: void char *speak{cout“miao!miao!”;} …}; void main() {宠物 *p; 猫 cat1; 狗 dog1; ….//此处设计程序用户根据输入将猫或 ….//狗对象地址赋给p指针 ….//例如,输入1:p=cat1,输入2:p=dog1 p-speak( ); } * 虚函数 虚函数是动态绑定的基础。 虚函数的语法: virtual 函数返回类型 函数名(参数表) 说明: 1、非静态的成员函数。 2、在类的声明中,在函数原型之前写virtual。 3、virtual 只用来说明类声明中的原型,不能用在函数实现时。 虚 函 数 虚函数举例 1、未使用虚函数 2、使用虚函数 #include iostream using namespace std; // 1、未使用虚函数 class pet {public: void speak() {cout“How does a pet speakendl;} }; class Cat: public pet { public: void speak(){ cout“miao!miao!endl; } }; class Dog: public pet { public: void speak(){ cout“wang!wang!endl; } }; void main() //主函数 { pet *p1,*p2,*p3,obj; dog dog1; cat cat1; obj.speak( ); p1=cat1; p1-speak(); p2=new cat; p2-speak(); p3=new dog; p3-speak(); pet p4=cat1; p4- speak(); } * How does a pet speak How does a pet speak How does a pet speak How does a pet speak How does a pet speak How does a pet speak 输出结果: #include iostream using namespace std; // 2、使用虚函数 class pet {public: virtual void speak() {cout“How does a pet speakendl;} }; class Cat: public pet { public: void speak(){ cout“miao!miao!endl; } }; class D
您可能关注的文档
- 高一语文《物种起源》导言6.ppt
- 起重吊装安全专项方案.doc
- 食品经营许可证申请书.doc
- 小公司规章制度.doc
- 端午节的由来及习俗.doc
- 德意志制造联盟.ppt
- 第二节-气压带和风带.ppt
- 物种起源绪论.ppt
- 气压带和风带课件.ppt
- 全球气压带和风带.ppt
- 2026年小学寒假期间安全工作实施方案范文.docx
- 学校班级、小组、宿舍学生安全信息员管理制度.docx
- 学校交通(校车)安全管理制度.docx
- 人教版八年级上册历史精品教学课件 第六单元 中华民族的抗日战争 第17课 七七事变与全民族抗战 (6).ppt
- 人教版八年级上册历史精品教学课件 期末专题复习 专题二 中国人民近代化的探索 (2).ppt
- 人教版八年级上册历史精品教学课件 第二单元 近代化的早期探索与民族危机的加剧 第5课 甲午中日战争与列强瓜分中国狂潮 (2).ppt
- 人教版八年级上册历史精品教学课件 第七单元 人民解放战争 大概念引领下的大单元复习 (4).ppt
- 人教版八年级上册历史精品教学课件 第七单元 人民解放战争 第21课 人民解放战争的胜利 (2).ppt
- 人教版八年级上册历史精品教学课件 第三单元 资产阶级民主革命与中华民国的建立 第10课 中华民国的创建 (2).ppt
- 人教版八年级上册历史精品教学课件 第四单元 新民主主义革命的开始 第12课 新文化运动 (3).ppt
原创力文档

文档评论(0)