虚函数后面的const=0

简介: 虚函数后面的const=0

const 和 =0要分开理解.


首先理解一下分开的意思


成员函数后面用 const 修饰,const表示this是一个指向常量的指针,即对象成为一个常量,即它的成员不能够变化.(默认情况下,this的类型是指向类类型非常量版本的常量指针。例如在Sales_data成员函数中,this的类型是Sales_data *const,即类一旦实例化一个对象后,this指向这个对象,是不能改变的,但是对象本身可以变)


=0表示这个成员函数是纯虚函数,也就是它可以没有定义,只有接口,由它的继承类具体定义它的行为,当然,你也可以给它定义缺省的函数体


一个类里如果包含 =0 的纯虚函数,那么这个类就是一个抽象类,它不能具体实例化(不能创建它的对象),而只能由它去派生子类


合起来在虚函数后面–>纯虚函数


const 写在函数后头还=0这里不是const=0,虚函数表示方法是


virtual 返回值 函数名(参数表){函数体} ,


在继承的时候可以在子类中从新定义这个函数。如果你的子类中都重新定义了这个函数,那个父类中函数的定义就没有什么用了所以可以不定义只说明就行,也就是定义为纯虚函数形如:


virtual 返回值 函数名(参数表)=0;这里就不用定义实际的函数了。


相关文章
|
Linux 开发工具 git
10 推荐免费 Git 仓库
Git 免费仓库 Gitee 开源中国-基于 Git 的代码托管和研发协作平台【推荐】 https://gitee.com/
2280 0
10 推荐免费 Git 仓库
|
SQL 存储 监控
实用技巧:排查数据异常/数据波动问题,该如何下手?
在我做开发的这些年,让我很头痛的一类问题,不是线上故障,而是数据异常,不知道有没有程序员跟我感同身受。大多数的服务故障都有较为直观的异常日志,再结合产品表象,相对排查起来还有迹可循,但数据异常的原因就太多了,很多时候连报错日志都没有,排查起来简直无从下手。
实用技巧:排查数据异常/数据波动问题,该如何下手?
|
编解码 Java Maven
Java修改图片分辨率(附代码) | Java工具类
Java修改图片分辨率(附代码) | Java工具类
Java修改图片分辨率(附代码) | Java工具类
|
前端开发 Java API
Spring Boot之Spring MVC基于注解的控制器(RequestMapping注解类型 重定向与转发 依赖注入)
Spring Boot之Spring MVC基于注解的控制器(RequestMapping注解类型 重定向与转发 依赖注入)
245 0
|
8月前
|
资源调度 自然语言处理 网络架构
RT-DETR改进策略【Neck】| 使用CARAFE轻量级通用上采样算子
RT-DETR改进策略【Neck】| 使用CARAFE轻量级通用上采样算子
197 11
RT-DETR改进策略【Neck】| 使用CARAFE轻量级通用上采样算子
|
存储 监控 固态存储
在高并发环境下,如何优化 WAL 的写入性能?
在高并发环境下,如何优化 WAL 的写入性能?
194 2
|
安全 C++
C++: std::once_flag 和 std::call_once
`std::once_flag` 和 `std::call_once` 是 C++11 引入的同步原语,确保某个函数在多线程环境中仅执行一次。
|
Java 编译器 C语言
【C/C++】 switch-case 详解/全面总结
关于 C语言/C++ 中,switch-case 的尽量详细和全面的解释与总结
3445 0
|
监控 前端开发 数据库
Zabbix 5.0 LTS部署实战篇
这篇文章是关于Zabbix 5.0 LTS部署的详细教程,包括版本选择、服务器平台选择、安装步骤、数据库配置、前端安装以及修改时区和设置开机自启等内容。
859 1
Zabbix 5.0 LTS部署实战篇
|
算法 C++ 容器
C++之vector容器操作(构造、赋值、扩容、插入、删除、交换、预留空间、遍历)
C++之vector容器操作(构造、赋值、扩容、插入、删除、交换、预留空间、遍历)
841 0