
多态
没有金刚钻,也木有刷子
个人学习记录而已,主要供自己查看,如有不当请见谅。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
虚析构和纯虚析构
1.多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码解决方式:将父类中的析构函数改为虚析构或者纯虚构虚析构和纯虚构共性:可以解决父类指针释放子类对象 都需要有具体的函数实现虚析构和纯虚构的区别:如果是纯虚析构,该类属于抽象类,无法实例化对象虚析构语法:virtual ~类名(){}纯虚构语法:virtual ~类名()=0;#include<iostream>using namespace std;#inclu.原创 2021-03-04 17:12:11 · 225 阅读 · 1 评论 -
多态案列--制作饮品
流程:煮水--冲泡--倒入杯中--加入辅料 利用多态技术实现本案列,提供抽象制作饮品类,提供子类制作咖啡和茶叶#include<iostream>using namespace std;#include<string>//多态案例--制作饮品class AbstractDrinking{public: //煮水 virtual void Boil() = 0; //冲泡 virtual void Brew() = 0; //倒入杯中 virtual v原创 2021-03-04 14:43:40 · 171 阅读 · 1 评论 -
纯虚函数和抽象类
在多态中,原创 2021-03-04 13:46:41 · 147 阅读 · 1 评论 -
多态的案例--计算器类
#include<iostream>using namespace std;#include<string>//分别利用普通写法和多态技术实现计算器//普通写法class Calculator{public: double getresult(string oper) { if (oper == "+") { return a + b; } else if (oper == "-") { return a - b; } el.原创 2021-03-03 19:10:02 · 253 阅读 · 1 评论 -
多态的基本概念
多态分为两类静态多态:函数重载和运算符重载属于静态多态,复用函数名 动态多态:派生类和虚函数实现运行时多态静态多态和动态多态区别:静态多态的函数地址早绑定--编译阶段确定函数地址 动态多态的函数地址晚绑定--运行阶段确定函数地址#include<iostream>using namespace std;#include<string>//动态//动物类class Animal{public: //虚函数 //函数前面加上virtual关键字,变成虚原创 2021-03-03 16:08:14 · 159 阅读 · 0 评论