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();
}
总的来说,纯虚函数主要用于定义接口,它们强制派生类提供特定的功能实现,同时也能够确保基类不能被实例化,这样可以确保基类只能被用作派生类的模板,而不能单独存在。这样的设计有助于防止用户误用基类,保证了系统的健壮性和安全性。
热门推荐
桂圆食用指南:这些人群需谨慎
成都自驾游海南三亚旅游攻略:沿途美景与实用建议
泉州和福州哪个好?
城市年轻人租房攻略:找到既便宜又舒适居所的实用技巧与避坑指南
MOS管栅极电阻和泄放电阻的作用
电脑没有声音不用愁:五步全面排查指南,助你轻松恢复音频输出
健康科普丨眼睛里还能长“翅膀”?带您认识翼状胬肉
如何制作定制的自制保湿霜:分步指南
近乎自残!他们为何打断骨头求增高
围猎北上广深“老破小”:炒家抄底扫货,总价百万就能当包租公
骨折后康复训练方法
WePoker透视功能是否影响账户安全
PCB 金手指:设计、类型和用途的基本指南
梧州的房地产市场如何?这里的房产投资有哪些值得关注的特点?
精准营销,从理解消费者开始!《消费者行为学》解读
基于粒子群算法的电力系统无功优化研究(IEEE14节点)
汉献帝的人生轨迹:从帝位到悲剧性的结局
笑麻了!男子吐槽兰州牛肉面不加牛肉后续店家回应,评论区炸锅
《黄帝内经》:秋季养肺以白为“贵”,秋天不能错过的5白食物
2024年油价调价日期表,洞悉油价波动,规划出行成本
琼瑶离世:一个时代的落幕与“善终权”的社会反思
浦南线来了!上海交通大升级
中药店进货中药,选品有什么讲究?
合同违约赔偿三倍怎么算?法律专家详解计算方法与注意事项
这个功能好,寿命或延长7年!4个简单方法能锻炼加强!
天秤座ENFP:追求和谐的熱情夢想家
嘴部湿疹与艾滋病:解开误区的迷雾
逆天改命 选择什么职业
酸酸甜甜还能发光——教你制作水果电池
2024年软考下半年备考技巧分享