C++虚函数与纯虚函数

本文介绍了C++中的虚函数和纯虚函数,对比了它们与Java抽象类和接口的相似性。虚函数是带有virtual关键字的函数,必须实现,而纯虚函数只需声明。纯虚函数所在的类称为纯虚类,不能直接实例化。此外,文章还探讨了C++中override关键字的作用,用于强制检查虚函数的重写,防止因函数签名不匹配导致的错误。override确保了正确重写基类虚函数,提高代码的清晰性和健壮性。
摘要由CSDN通过智能技术生成

C++的虚函数与纯虚函数

C++项目看起来真的是太恼火了,源码阅读起来有点不便,幸亏有source insight 保命。C++有个很重要的特性,那就是多态。多态的实现主要是两种方式:一个就是函数的重载,另一个就是继承中对虚函数的重写。虚函数的引入对C++大型项目接口设计统一标准起到了非常重要的作用,与虚函数相对应的就是纯虚函数。

虚函数:用 virtual 标识标记的函数就是虚函数,只含有虚函数(且不含纯虚函数)的类就叫做虚类或者虚基类虚函数必须要实现,可以是空函数体。被子类继承,子类不重写的话那就是直接基类的方法。

纯虚函数:同样含有 virtual 标识符,但是定义时函数则是在函数名后直接加 =0 定义;含有纯虚函数的类叫纯虚类纯虚函数不用实现。子类只继承函数名,具体功能需要子类自己实现。

栗子奉上:

virtual void printTest();         //虚函数,需要函数体 
virtual void printTest() = 0;     //纯虚函数,只用定义

Java抽象类和接口

写过Java的人会发现,这个的功能特性与 java 的抽象类和接口的函数是类似的

抽象类:用 abstract 标识符标记的类就叫抽象类。抽象类的函数需要函数体,类似C++虚函数一样。

接口:与类(class)相对,用 Interface 标识符标记。接口只定义函数名,不具体实现。这个类似C++纯虚函数

直接栗子:

// 以下为多个文件
//-------------------- Base.java-----------------
package test;

abstra
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值