- 7
- 0
- 约 26页
- 2017-02-08 发布于江苏
- 举报
多态演示文件修改版
C++中,通过基类指针调用一般的成员函数时采取的都是静态绑定。 可以通过基类指针操作基类对象 基类指针可以操作派生类对象(只能访问子类中,继承下来的基类成员) 多态性 多态性:同一个操作用于不同类的实例时,将导致不同的执行结果。 如:运算符 / * 静态绑定:在编译时能确定函数调用语句 如:函数重载 动态绑定:程序运行时,才能确定具体调用哪一个函数。 函数重载:多个函数使用同一函数名,但函数原型的形式参数的个数或者对应位置的类型不同 C语言不支持函数重载,所以每一个函数必须具有唯一的名字 例:求绝对值 int abs(int); 整型 loat fabs(float); 浮点型 C++支持函数重载:编译程序根据实际参数的个数与相应位置的类型选择调用哪一个版本的重载函数 #include iostream.h int add(int x,int y) { cout两个整数相加; return (x+y); } double add(double x,double y) { cout两个实数相加; return (x+y); } int main() { cout add(3,4) endl; //调用第一个add函数 cout add(10.8,2.6) endl; return 0; } 函数名相同,参数不同 #include iostream.h class A{ public: void show(){cout1111endl;} }; class B: public A{ public: void show(){cout2222endl;} }; void main() { A *p; A a1; p=a1; p-show(); B b1; p=b1; p-show(); } 指向基类对象的指针指向派生类对象后,可以访问派生类对象中由基类继承下来的成员,但不能访问那些派生类对象自己增加的成员。 这是由数据类型决定的,基类的指针,只能访问基类对象的成员 如何通过基类指针,访问派生类对象自己的成员? #include iostream.h class BASE { public: void who() { coutBASE\n; } }; class FIRST_D:public BASE { public: void who() { // 继承成员的重定义 coutFirst Derivation\n; } }; class SECOND_D:public BASE { public: void who() { coutSecond Derivation\n; } }; void main( ) { BASE b_obj; FIRST_D f_obj; SECOND_D s_obj; BASE *p; // 定义指向基类的指针p p = b_obj; p-who(); p = f_obj; p-who(); p = s_obj; p-who(); } 输出结果: BASE BASE BASE 不管p指向什么对象,通过p三次调用的都是基类的who函数 原因: 普通成员函数的调用采用的是静态绑定,通过指针引起的普通成员函数调用,仅仅与指针的基类型有关,而与此刻该指针正在指向什么对象无关 虚函数是类中被冠以virtual的成员函数 虚函数在公有继承结构中在一个或多个派生类中被重定义,在被调用过程中,通过指向基类的指针实现动态绑定 虚函数 #include iostream.h class A{ public: void show(){cout1111endl;} }; class B: public A{ public: void show(){cout2222endl;} }; void main() { A *p; A a1; p=a1; p-show(); B b1; p=b1; p-show(); } virtual virtual #include iostream.h class BASE { public: virtual void who() { coutBASE\n; } }; class FIRST_D:public BASE { pub
您可能关注的文档
- 多尺度材料设计理论培训教案.ppt
- 多层框架结构设计培训教案.ppt
- 多态 中国地质大学培训教案.ppt
- 多彩的世界之古巴比伦古印度文明培训教案.ppt
- 多态性与虚函数培训教案.ppt
- 多态性演示文件修改版.ppt
- 多媒体编程Visual C++简介培训教案.ppt
- 多属性决策的目标体系(第讲)培训教案.ppt
- 多媒体技术及应用图像信息的获取与处理培训教案.ppt
- 多彩贵州培训教案.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 西方经济学(第三版)许纯祯PPT全套课件.pptx
- 山东科技版劳动实践指导手册五年级第8课传统工艺制作我是非遗小传人扎染 课件.ppt
- 分项工程量清单综合单价分析表.xls VIP
- 《智慧养老模式在养老服务中的技术创新与产业协同研究》教学研究课题报告.docx
- 人教版(2024)八年级上册英语Unit 8 Let's Communicate! 教案(共6课时) .pdf
- 3512B柴油机零件手册.pdf VIP
- (新教材)2026年春期教科版二年级下册科学教学计划及进度表.pdf
- BIQS2.0 进阶版学习教材V4.0.pdf VIP
- 作物育种学(刘裕强)第十四章 群体改良与轮回选择.ppt VIP
- 2024茂名市电白区电城镇社区工作者招聘考试试题.docx VIP
原创力文档

文档评论(0)