对纯虚函数的理论不再说明。

本篇博文是为了说明他这个功能

代码如下:

#include <iostream>
#include <QString>
#include <QDebug>
using namespace std;class Base{
public:virtual void printAllData()=0;virtual QString getClassName()=0;protected:Base(){}
};class Son:public Base{
public:void printAllData(){cout<<"The data is "<<m_data<<endl;}QString getClassName(){return "Son";}Son(int data){m_data=data;className="Son";}private:int m_data;QString className;
};int main()
{Son *son=new Son(10);Base *base=son;base->printAllData();qDebug()<<"base->getClassName:"<<base->getClassName();return 0;
}

运行截图如下:

通过特定的纯虚函数!

用父类去指向子类。但却可以调用子类的函数(获取想要的数据)。

比如实现typeid等功能!!!!!!

C++工作笔记-对纯虚函数的进一步理解(作用)相关推荐

  1. 【C++学习笔记】 纯虚函数详解,绝不纯属虚构!

    首先:强调一个概念 定义一个函数为虚函数,不代表函数为不被实现的函数. 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数. 定义一个函数为纯虚函数,才代表函数没有被实现. 定义纯虚函数是为了实 ...

  2. Qt工作笔记-对信号与槽的进一步理解(信号与信号关联)

    运行截图如下: 关键代码如下: connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(btnClicked()));connect(thi ...

  3. c++中虚函数和纯虚函数定义

    只有用virtual声明类的成员函数,使之成为虚函数,不能将类外的普通函数声明为虚函数.因为虚函数的作用是允许在派生类中对基类的虚函数重新定义.所以虚函数只能用于类的继承层次结构中. 一个成员函数被声 ...

  4. 虚函数、纯虚函数、虚函数与析构函数

    一.虚函数 只有用virtual声明类的成员函数,使之成为虚函数,不能将类外的普通函数声明为虚函数.因为虚函数的作用是允许在派生类中对基类的虚函数重新定义.所以虚函数只能用于类的继承层次结构中. 一个 ...

  5. C++工作笔记-虚函数、纯虚函数、虚析构函数的进一步理解

    虚函数: 1.带virtual关键字: 2.父类有定义,并且有功能,子类继承后可以重写这个功能(在Qt中经常见到 父类::此函数(参数)进行父类的调用,这样做是为了把父类的逻辑"继承&quo ...

  6. C++_类和对象_C++多态_纯虚函数和抽象类---C++语言工作笔记072

    然后我们再来看一下c++中的抽象类,以及纯虚函数是什么意思. 可以看到如果类中有纯虚函数,那么这个类,就可以称为抽象类. 抽象类,是无法实例化,跟java一样,子类继承抽象类,必须要重写抽象类中的方法 ...

  7. 构造函数不可以是虚函数;析构函数可以是虚函数,也可以是纯虚函数。

    构造函数不可以是虚函数:析构函数可以是虚函数,也可以是纯虚函数. 一:构造函数不能声明为虚函数的原因 1 构造一个对象的时候,必须知道对象的实际类型,而虚函数行为是在运行期间确定实际类型的. 而在构造 ...

  8. (转)虚函数和纯虚函数区别

    在面向对象的C++语言中,虚函数(virtual function)是一个非常重要的概念.因为它充分体现 了面向对象思想中的继承和多态性这两大特性,在C++语言里应用极广.比如在微软的MFC类库中,你 ...

  9. 纯虚函数能为private吗?

    我们把一个仅仅含有纯虚函数的类称为接口,我们也好像已经习惯了将这个接口中的所有纯虚函数全声明为public,而且按照这样的设计,一切都工作得不错.比如COM正是这样做的,它的接口中几乎不会存在priv ...

最新文章

  1. 使用log_format为Nginx服务器设置更详细的日志格式
  2. 背景se_SE新作《先驱者》首个内容预告 定于2020年圣诞发售
  3. Ubuntu、CentOS 解决docker命令权限问题(sudo)
  4. android 导入系统证书,安卓手机添加系统证书方法(HTTPS抓包)
  5. 先进pid控制matlab仿真程序,先进PID控制Matlab仿真第4版-仿真程序-上交
  6. 通过wsdl2java工具生成客户端段代码(wsdl2java -p cn.com.css.misps.graph.webservice.impl -d F:\src -all http://10.)
  7. 谷歌浏览器之如何快速找到js、css等文件
  8. 以编程方式确定Java类的JDK编译版本
  9. Java中怎么样检查一个字符串是不是数字呢
  10. 在项目中使用redis的原因
  11. mysql数据库编程(c 语言)_【C/C++学院】(23)Mysql数据库编程--C语言编程实现mysql客户端...
  12. canvas插件_HTML系列之-HTML5新元素之Canvas详解
  13. 如何将图例排除在情节之外
  14. Python 读取数据
  15. Spring中原型prototype
  16. java 生成ai矢量图_(针对新手)AI将位图图标转换为矢量图方法
  17. 【Ubuntu】USB 摄像头测试工具
  18. 在互联网寒冬,程序员能够做什么?
  19. .then()方法是异步执行
  20. 送书 | Python最优算法实战

热门文章

  1. Python:为什么必须在方法定义和调用中明确使用'self'?
  2. Extjs 强大的WEB窗体开发库
  3. 但我发现了幸福的超级玛丽
  4. 理论不只是理论的zhajinhuagame
  5. FreeEIM V 2.8.9.8 改善计划
  6. 25岁,一位女程序员的幸运几年
  7. css和css的圣杯布局,CSS布局--圣杯布局和双飞翼布局以及使用Flex实现圣杯布局
  8. mysql键太长_数据库,主键为何不宜太长长长长长长长长?(转)
  9. STM32-----找个搬砖的搬数据
  10. OpenCV中霍夫圆检测