类型兼容原则遇上函数重写
来源:互联网 发布:阿里云 物理专线 编辑:程序博客网 时间:2024/06/06 02:43
1、面向对象新需求
编译器的做法不是我们期望的
根据实际的对象类型来判断重写函数的调用
如果父类指针指向的是父类对象则调用父类中定义的函数
如果父类指针指向的是子类对象则调用子类中定义的重写函数
这个新的需求就是多态
#include<iostream>using namespace std;class Parent{public:Parent (int a){this->a = a;cout<<"a: "<<a<<endl;}virtual void print()//在父类同名函数写了virtual关键字后子类可写可不写{cout<<"Parent 打印a: "<<a<<endl;}protected:private:int a;};class child:public Parent{public:child (int b):Parent(10){this->b = b;cout<<"b: "<<b<<endl;}void print(){cout<<"Child 打印b: "<<b<<endl;}protected:private:int b;};void howToPrint(Parent *base){base->print();}void howToPrint2(Parent &base){base.print();}int main(){Parent *base = NULL;Parent p1(20);child c1(30);base = &p1;base->print();//执行父类的大隐函数base = &c1;base->print();//执行谁的函数?----面向对象新需求{Parent &base2 = p1;base2.print();Parent &base3 = c1;//base3是c1的别名base3.print();}//函数调用howToPrint(&p1);howToPrint(&c1);howToPrint2(p1);howToPrint2(c1);system("pause");return 0;}
0 0
- 类型兼容原则遇上函数重写
- 类型兼容性原则遇上还是函数重写_面向对象新需求
- c++类型兼容原则
- 多态问题抛出(赋值兼容性原则遇上父类与子类同名函数的时候)
- C++学习笔记--继承的赋值兼容和函数重写
- 重载遇上函数指针
- 重写HttpServletRequest兼容Tomcat
- 兼容类型
- java方法重写原则
- 方法重写的原则
- 方法重写原则
- C++赋值兼容原则
- 最好别去重写clone函数,JAVA这个函数原则不优良。
- C++箴言:用成员函数模板接受兼容类型
- 条款45:运用成员函数模板接受所有兼容类型
- 条款45:运用成员函数模板接受所有兼容类型。
- 条款45:运用成员函数模板接受所有兼容类型
- C++箴言:用成员函数模板接受兼容类型
- Bootstrap UploadFile集成EasyUI
- PAT1017. Queueing at Bank
- 公共子串
- java中的匿名内部类总结
- CSS3 animation属性 与 @keyframes规则
- 类型兼容原则遇上函数重写
- oracle数据库修改编码
- GreenDao数据库升级
- word2007中图片、公式、消失不见问题解析
- MYSQL数据库引擎 MYISAM和 INNODB区别
- 在R中安装xgboost包
- php实现倒计时功能
- 安装Docker——使用阿里云Docker加速器
- 如何脱颖而出?