C++开发系列-纯虚函数和抽象类
2024-09-05 21:51:32
概念
纯虚函数和抽象类
- 纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都实现该函数。
- 纯虚函数为各派生类提供了一个公共界面(接口的封装和设计、软件的模块功能的划分)
纯虚函数说明的形式
一个具有纯虚函数的基类称之为抽象类。
抽象类可以声明抽象类指针,通过抽象类指针调用子类的方法,类似java的接口。但是不可以实例化对象。
定义一基类Person
#ifndef Person_hpp
#define Person_hpp
#include <stdio.h>
class Person // 抽象类
{
public:
virtual void run() = 0; // 纯虚函数
virtual void eat() = 0;
};
#endif /* Person_hpp */
定义一个Teacher类集成Person类,实现Person的虚构函数
/**-------------------------Teacher.h--------------------------*/
#include <stdio.h>
#include "Person.hpp"
class Teacher: public Person
{
public:
virtual void run();
virtual void eat();
private:
char *name;
};
/**-------------------------Teacher.cpp--------------------------*/
#include "Teacher.hpp"
void Teacher::run(){
printf("Teacher----------run\n");
}
void Teacher::eat()
{
printf("Teacher----------eat\n");
}
抽象类的使用
- (void)viewDidLoad {
[super viewDidLoad];
// 抽象类指针指向子类的示例
Person *p = new Teacher();
p->eat(); // 通过抽象类指针调用子类示例的方法
p->run();
}
最新文章
- ASP.NET OWIN OAuth:refresh token的持久化
- jquery_datatables
- hadoop中常见的问题
- JDBC 增删查改
- MyEclipse整合Git
- ModSecurity CRS笔记[转]
- 用 JMH 检测 Lambdas 序列化性能
- SecureCRT, SecureFX连接Linux时中文乱码解决办法
- 解决spring-boot启动中碰到的问题:Cannot determine embedded database driver class for database type NONE
- [转载] 修改linux终端用户名的颜色
- win2008安装并配置zabbix3.4 agent
- 洛谷P3655 差分数组 树状数组
- 背水一战 Windows 10 (67) - 控件(控件基类): DependencyObject - CoreDispatcher, 依赖属性的设置与获取, 依赖属性的变化回调
- 将数据导入MongoDB集群与MySQL
- matplotlib包画基本的图
- [NOI.AC]DELETE(LIS)
- SessionStroage和locationStorage的思考
- 17、JAVA多线程和并发基础面试问答
- vue - webpack.dev.conf.js for merge
- JAVA MAC 配置
热门文章
- JavaScript中深拷贝实现
- Linux命令(1):date
- PMP-49个过程快速导览
- centos7.2搭建kubernetes1.5.2+dashboard
- 分类-回归树模型(CART)在R语言中的实现
- hexo换了电脑,怎么办?
- HDU1556-Color the ball-前缀和/线段树/树状数组
- java程序——CPU过高100%及内存泄露排查
- 18-Ubuntu-文件和目录命令-创建文件和目录-touch和mkdir
- 15-Ubuntu-文件和目录命令-查看目录内容-ls-2