C++:纯虚函数
创作时间:
作者:
@小白创作中心
C++:纯虚函数
引用
CSDN
1.
https://blog.csdn.net/WolvenSec/article/details/138590867
在 C++ 中,纯虚函数(pure virtual function)是一个在基类中声明为纯虚函数的虚函数(如果对虚函数不了解可以去我上一篇文章:C++:虚函数)。它在基类中没有默认实现,而是要求派生类提供实现。通过声明一个函数为纯虚函数,可以使基类成为抽象类,不能实例化,但可以作为其他类的基类。
类中纯虚函数的设置:
class Animal
{
public:
//纯虚函数
//virtual 函数返回类型 函数名(参数列表) = 0;
virtual void run() = 0;
};
在这个例子中,
Animal
类中声明了一个纯虚函数
virtual void run() = 0;
,这使得
Animal
类成为了抽象类,不能被实例化。此时如果在函数中创建
Animal
实例化对象则程序会直接报错:
纯虚函数为基类(抽象类)提供了一种定义接口的方式,通过声明纯虚函数,基类可以规定派生类必须实现的功能,而不需要提供具体的实现。这样可以确保派生类具有相同的接口,并且可以在系统中更容易地进行替换和扩展,同时也能够确保基类不能被实例化。
抽象类规定了派生类的功能实现
class Cat : public Animal
{
public:
Cat();
~Cat();
//强制功能实现
void run() {
std::cout << "Cat Run 函数" << std::endl;
}
}
派生类
Cat
继承了
Animal
类,并实现了纯虚函数
run()
;此时派生类可以在主程序中正常执行。
如果派生类为对继承下来的纯虚函数
run()
进行实现,那么此时在派生类中
run()
依旧是一个纯虚函数,即派生类是一个抽象类无法进行实例化:
class Animal
{
public:
Animal(){//构造函数};
~Animal(){//析构函数};
//纯虚函数
virtual void run() = 0;
};
class Cat : public Animal
{
public:
Cat();
~Cat();
}
总的来说,纯虚函数主要用于定义接口,它们强制派生类提供特定的功能实现,同时也能够确保基类不能被实例化,这样可以确保基类只能被用作派生类的模板,而不能单独存在。这样的设计有助于防止用户误用基类,保证了系统的健壮性和安全性。
热门推荐
“天道忌满,人道忌全”:做人难得糊涂,千万别算清,要懂得留白
银联号查询指南:三种便捷方式及安全使用提示
液氢能否成能源领域“潜力之星”
考驾照科二难还是科三更难?听听驾校老教练的看法
食物不耐受简介:基本概念与常见误区
毕业生档案处理指南:三种官方渠道及注意事项
双11福布斯“副业100”评选揭晓!这届年轻人在闲鱼打造“赛博副业宇宙”
Ubuntu中的PPA终极指南
电脑连接手机热点频繁断开?5个方法全部解决
古人吃的秋葵,和我们吃的可不一样!
鸡蛋期货创近1个月新高,存栏量仍居高位,后市怎么走?
居住权受所有权变化影响吗
高速行车安全指南:从进入高速到驶出,这些技巧请收好
别墅叠拼完全解析:特点、优缺点及与复式住宅的区别
中药制剂的安全管理
送生日花束的艺术:如何选择花材和设计,传递生日祝福
3开头的股票怎么买
脉络膜脱离型视网膜脱离如何护理
一文读懂我国水导激光技术与产业发展
焦虑抑郁中的HPA轴
刑事案件二审开庭流程详解
定制家具常用的6种板材,怎么选?哪种好?
高压陶瓷电容与低压陶瓷电容
马克思恩格斯的哲学史意蕴浅探
盐酸库存管理要求有哪些
哪种运动最适合预防脊柱侧弯?医生专业解答来了
浣花溪水温江来:杜甫笔下的温江印记
韩国面积相当于中国的哪个省份?
什么是电动后备箱开启
儿歌唱起来,防线筑起来,反邪强起来!