C++中的纯虚函数和抽象类
时间:2020-05-21
本文章向大家介绍C++中的纯虚函数和抽象类,主要包括C++中的纯虚函数和抽象类使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
纯虚函数
纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本
纯虚函数为个派生类提供一个公共界面(接口的封装和设计、软件的模块功能划分)
纯虚函数声明语法:
virtual 类型 函数名(参数表) = 0;
#include <iostream> using namespace std; class Figure { public: virtual void getArea() = 0; }; class Circle: public Figure { private: double r; public: Circle(int r1):r(r1){} virtual void getArea() { cout<<"圆形面积:"<<3.14 * r * r<<endl; } }; class Square: public Figure { private: double edge; public: Square(int e):edge(e){} virtual void getArea() { cout<<"正方形面积:"<<edge * edge<<endl; } }; void getArea(Figure *base) { base->getArea(); } int main() { Circle c(10); Square s(10); getArea(&c); getArea(&s); return 0; }
注意:
1,含有纯虚函数的类,称为抽象基类,不可实例化。 即不能创建对象,存在的意义就是被继承,提供族类的公共接口。
2,纯虚函数只有声明,没有实现,被“初始化”为 0。
3,如果一个类中声明了纯虚函数,而在派生类中没有对该函数定义,则该虚函数在派生类中仍然为纯虚函数,派生类仍然为纯虚基类。
抽象类
一个具有纯虚函数的基类称为抽象类
绝大多数面向对象语言都不支持多继承,绝大多数面向对象语言都支持接
口的概念
C++中没有接口的概念,C++中可以使用纯虚函数实现接口
接口类中只有函数原型定义,没有任何数据的定义.
原文地址:https://www.cnblogs.com/xumaomao/p/12932469.html
- Golang语言--包的概念、导入与可见性
- MySQL中的change,modify和自增列的关系(r12笔记第70天)
- Golang 值得注意的地方
- MySQL数值类型在binlog中需要注意的细节(r12笔记第69天)
- WordPress评论滑动/拉链解锁myQaptcha修改为自动提交的方法
- MySQL root用户登录的几个小问题(r12笔记第67天)
- Java实现生产者消费者的两种方式(r12笔记第66天)
- Golang语言的函数调用信息
- mysqldump的一点使用总结(r12笔记第81天)
- 转-Golang语言Interface漫谈
- WordPress导航菜单图标字体插件font awesome 4 menus纯代码版
- Oracle 12c远程克隆PDB的问题及修复(r12笔记第78天)
- Oracle表中含有255列以上时需要注意的(r12笔记第77天)
- Golang语言--资源自动回收技术
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法