C++工作笔记-对纯虚函数的进一步理解(作用)
对纯虚函数的理论不再说明。
本篇博文是为了说明他这个功能
代码如下:
#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++工作笔记-对纯虚函数的进一步理解(作用)相关推荐
- 【C++学习笔记】 纯虚函数详解,绝不纯属虚构!
首先:强调一个概念 定义一个函数为虚函数,不代表函数为不被实现的函数. 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数. 定义一个函数为纯虚函数,才代表函数没有被实现. 定义纯虚函数是为了实 ...
- Qt工作笔记-对信号与槽的进一步理解(信号与信号关联)
运行截图如下: 关键代码如下: connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(btnClicked()));connect(thi ...
- c++中虚函数和纯虚函数定义
只有用virtual声明类的成员函数,使之成为虚函数,不能将类外的普通函数声明为虚函数.因为虚函数的作用是允许在派生类中对基类的虚函数重新定义.所以虚函数只能用于类的继承层次结构中. 一个成员函数被声 ...
- 虚函数、纯虚函数、虚函数与析构函数
一.虚函数 只有用virtual声明类的成员函数,使之成为虚函数,不能将类外的普通函数声明为虚函数.因为虚函数的作用是允许在派生类中对基类的虚函数重新定义.所以虚函数只能用于类的继承层次结构中. 一个 ...
- C++工作笔记-虚函数、纯虚函数、虚析构函数的进一步理解
虚函数: 1.带virtual关键字: 2.父类有定义,并且有功能,子类继承后可以重写这个功能(在Qt中经常见到 父类::此函数(参数)进行父类的调用,这样做是为了把父类的逻辑"继承&quo ...
- C++_类和对象_C++多态_纯虚函数和抽象类---C++语言工作笔记072
然后我们再来看一下c++中的抽象类,以及纯虚函数是什么意思. 可以看到如果类中有纯虚函数,那么这个类,就可以称为抽象类. 抽象类,是无法实例化,跟java一样,子类继承抽象类,必须要重写抽象类中的方法 ...
- 构造函数不可以是虚函数;析构函数可以是虚函数,也可以是纯虚函数。
构造函数不可以是虚函数:析构函数可以是虚函数,也可以是纯虚函数. 一:构造函数不能声明为虚函数的原因 1 构造一个对象的时候,必须知道对象的实际类型,而虚函数行为是在运行期间确定实际类型的. 而在构造 ...
- (转)虚函数和纯虚函数区别
在面向对象的C++语言中,虚函数(virtual function)是一个非常重要的概念.因为它充分体现 了面向对象思想中的继承和多态性这两大特性,在C++语言里应用极广.比如在微软的MFC类库中,你 ...
- 纯虚函数能为private吗?
我们把一个仅仅含有纯虚函数的类称为接口,我们也好像已经习惯了将这个接口中的所有纯虚函数全声明为public,而且按照这样的设计,一切都工作得不错.比如COM正是这样做的,它的接口中几乎不会存在priv ...
最新文章
- 使用log_format为Nginx服务器设置更详细的日志格式
- 背景se_SE新作《先驱者》首个内容预告 定于2020年圣诞发售
- Ubuntu、CentOS 解决docker命令权限问题(sudo)
- android 导入系统证书,安卓手机添加系统证书方法(HTTPS抓包)
- 先进pid控制matlab仿真程序,先进PID控制Matlab仿真第4版-仿真程序-上交
- 通过wsdl2java工具生成客户端段代码(wsdl2java -p cn.com.css.misps.graph.webservice.impl -d F:\src -all http://10.)
- 谷歌浏览器之如何快速找到js、css等文件
- 以编程方式确定Java类的JDK编译版本
- Java中怎么样检查一个字符串是不是数字呢
- 在项目中使用redis的原因
- mysql数据库编程(c 语言)_【C/C++学院】(23)Mysql数据库编程--C语言编程实现mysql客户端...
- canvas插件_HTML系列之-HTML5新元素之Canvas详解
- 如何将图例排除在情节之外
- Python 读取数据
- Spring中原型prototype
- java 生成ai矢量图_(针对新手)AI将位图图标转换为矢量图方法
- 【Ubuntu】USB 摄像头测试工具
- 在互联网寒冬,程序员能够做什么?
- .then()方法是异步执行
- 送书 | Python最优算法实战