概念

纯虚函数和抽象类

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

纯虚函数说明的形式

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

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

C++开发系列-纯虚函数和抽象类的更多相关文章

  1. C++复习:纯虚函数和抽象类

    纯虚函数和抽象类 1基本概念 2抽象类案例   3抽象类在多继承中的应用 C++中没有Java中的接口概念,抽象类可以模拟Java中的接口类.(接口和协议) 3.1有关多继承的说明 工程上的多继承 被 ...

  2. c++-纯虚函数和抽象类

    纯虚函数和抽象类 C面向接口编程和C多态 函数类型语法基础 函数指针做函数参数(回调函数)思想剖析 函数指针做函数参数两种用法(正向调用.反向调用) 纯虚函数 抽象类 抽象类基本概念 抽象类在多继承中 ...

  3. C++学习基础十二——纯虚函数与抽象类

    一.C++中纯虚函数与抽象类: 1.含有一个或多个纯虚函数的类成为抽象类,注意此处是纯虚函数,而不是虚函数. 2.如果一个子类继承抽象类,则必须实现父类中的纯虚函数,否则该类也为抽象类. 3.如果一个 ...

  4. C++基础(纯虚函数与抽象类)

    C++基础之纯虚函数与抽象类 引言 纯虚函数在C++编程中的地位很重要,其关联到了设计模式中"接口"的概念. 语法 纯虚函数的语法: 1.  将成员函数声明为virtual 2.  ...

  5. C++:纯虚函数与抽象类

    5.4.3 纯虚函数和抽象类 纯虚函数是一个在基类中说明的虚函数,它在该基类中没有定义,但是要求在派生类中根据需要对它进行定义,或仍然说明为纯虚函数. 声明纯虚函数的一般格式是: virtual 函数 ...

  6. c++,纯虚函数与抽象类

    1.纯虚函数的定义: (1)虚函数被“初始化”为0的函数.声明纯虚函数的一般形式是virtual 函数类型 函数名(参数表列) =0;(2)纯虚函数没有函数体:(3)最后面的“=0”并不表示函数返回值 ...

  7. 简单地说, cpp中的纯虚函数就是抽象类的具体实现

    简单地说, cpp中的纯虚函数就是抽象类的具体实现.包含了纯虚函数的类就是抽象类.

  8. C++基础 (7) 第七天 多态的原理 纯虚函数和抽象类 依赖倒置原则

    1 昨日回顾 2 多态的原理 1 要有继承 2 要有子类重写父类的虚函数 3 父类指针(或者引用)指向子类对象 (动态联编 虚函数表 3 证明vptr指针的存在 4 vptr指针在构造父类的时候是分步 ...

  9. cc32b_demo-32dk2j_cpp_纯虚函数与抽象类2-txwtech

    cc32b_demo-32dk2j_cpp_纯虚函数与抽象类2-txwtech //纯虚函数是用来继承用的//纯虚函数//抽象类-抽象数据类型//*任何包含一个或者多个纯虚函数的类都是抽象类//*不要 ...

随机推荐

  1. PHP ftp_set_option() 函数

    定义和用法 ftp_set_option() 函数设置 FTP 连接的各种运行时选项. 如果成功,该函数返回 TRUE.如果失败,则返回 FALSE. 语法 ftp_set_option(ftp_co ...

  2. NX二次开发-NXOpen方式遍历所有体workPart->Bodies();

    NX11+VS2013 #include <NXOpen/DisplayManager.hxx> #include <NXOpen/Body.hxx> #include < ...

  3. csp-s模拟测试99

    csp-s模拟测试99 九九归一直接爆炸. $T1$一眼板子. $T2$一眼语文题(语文的唯一一次$120+$是给模拟出来的可知我的语文能力). $T3$一眼普及题. ?? Hours Later 板 ...

  4. HDU5923-Prediction-有继承味道的并查集

    目录 目录 思路: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 目录 题意:传送门  原题目描述在最下面.  有一个n个节点m条边的无向图和一个m个节点的有根树(根为1).树上每 ...

  5. c++-文件分离

    实现文件分离 1.头文件中不要使用using namespace,由于c++编译的特性,由于初学还没深入了解,不做具体编译的解释 2.由于没有了命名空间,所以string定义要写成std::strin ...

  6. Portainer Exec Container 失败解决方案

    近日,将portainer服务挂了个域名,然后用Nginx代理的时候发现不能attach容器了,经过搜索在issue 找到解决方案 1.修改Nginx config server { listen 8 ...

  7. [转]C++ 使用Makefile文件

    //*********list class.h**********class tdate {private:int month;int day;int year;public:tdate();tdat ...

  8. OCP—051试题

    FROM: http://blog.itpub.net/26736162/viewspace-1252569/?page=2 http://blog.csdn.net/elearnings/artic ...

  9. spark集群进入 bin 下面目录./spark-shell 出现Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    spark集群启动的时候可以正常,进入 ./spark-shell 就会出现如下错误 配置文件:spark-env.sh export JAVA_HOME=/usr/java/jdk1.7.0_51e ...

  10. 2.2_springboot2.x消息RabbitMQ整合&amqpAdmin管理组件的使用

    5.1.1.基本测试 1.引 spring-boot-starter-amqp** <dependencies> <dependency> <groupId>org ...