概念

纯虚函数和抽象类

  • 纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都实现该函数。
  • 纯虚函数为各派生类提供了一个公共界面(接口的封装和设计、软件的模块功能的划分)

纯虚函数说明的形式

一个具有纯虚函数的基类称之为抽象类。

抽象类可以声明抽象类指针,通过抽象类指针调用子类的方法,类似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(); }

最新文章

  1. ASP.NET OWIN OAuth:refresh token的持久化
  2. jquery_datatables
  3. hadoop中常见的问题
  4. JDBC 增删查改
  5. MyEclipse整合Git
  6. ModSecurity CRS笔记[转]
  7. 用 JMH 检测 Lambdas 序列化性能
  8. SecureCRT, SecureFX连接Linux时中文乱码解决办法
  9. 解决spring-boot启动中碰到的问题:Cannot determine embedded database driver class for database type NONE
  10. [转载] 修改linux终端用户名的颜色
  11. win2008安装并配置zabbix3.4 agent
  12. 洛谷P3655 差分数组 树状数组
  13. 背水一战 Windows 10 (67) - 控件(控件基类): DependencyObject - CoreDispatcher, 依赖属性的设置与获取, 依赖属性的变化回调
  14. 将数据导入MongoDB集群与MySQL
  15. matplotlib包画基本的图
  16. [NOI.AC]DELETE(LIS)
  17. SessionStroage和locationStorage的思考
  18. 17、JAVA多线程和并发基础面试问答
  19. vue - webpack.dev.conf.js for merge
  20. JAVA MAC 配置

热门文章

  1. JavaScript中深拷贝实现
  2. Linux命令(1):date
  3. PMP-49个过程快速导览
  4. centos7.2搭建kubernetes1.5.2+dashboard
  5. 分类-回归树模型(CART)在R语言中的实现
  6. hexo换了电脑,怎么办?
  7. HDU1556-Color the ball-前缀和/线段树/树状数组
  8. java程序——CPU过高100%及内存泄露排查
  9. 18-Ubuntu-文件和目录命令-创建文件和目录-touch和mkdir
  10. 15-Ubuntu-文件和目录命令-查看目录内容-ls-2