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();
}
总的来说,纯虚函数主要用于定义接口,它们强制派生类提供特定的功能实现,同时也能够确保基类不能被实例化,这样可以确保基类只能被用作派生类的模板,而不能单独存在。这样的设计有助于防止用户误用基类,保证了系统的健壮性和安全性。
热门推荐
杉杉集团360亿负债压顶,行业不景气业绩大幅下滑
逆转客户满意度下降趋势,赋能物企品质提升、服务升级!(方案篇·下)
征地手续流程及时间怎么认定
宜昌悼亡歌舞:传承与创新的文化瑰宝
耗尽层和空间电荷区,耗尽层近似详解-KIA MOS管
DIY经济实惠NAS硬盘扩展方案:家庭用户的灵活存储选择
如何巧妙构思公司商标名称?
刘德与汉武帝刘彻:一段复杂的血缘与政治关系
红茶绿茶饮用禁忌:哪些健康状况下需避免饮用
持股一年以上分红免税的实际操作步骤详解,实现免税目标
南美洲有哪些国家?了解南美洲的主要国家和文化
消费者需求驱动小家电行业变革:企业如何应对?
如何了解乳胶漆的使用面积计算方法?这种计算方法在装修预算中有何重要性?
几十万负债压力大?教你如何化解家庭经济困境
深圳「超刺激」的徒步路线,很累很开心!
箫的指法基本练习教程【新版多篇】
文竹发芽长叶全过程剖析(从种子到翠绿的叶子)
工伤范围是什么?哪些情形构成工伤?
八字天干甲己合化在命理学中的解读
天眼新知 |小烧烤蕴藏“大科技”, 烧烤相关专利申请超万项
瘦肚子的饮食习惯和生活习惯
车载充电器怎么使用?USB车充使用误区有哪些?
小学教师资格证报考条件概览:学历背景及专业要求详解,报考资格全面解读
MySQL数据库表复制方法详解
特斯拉与超自然现象:科学视角下的“鬼魂”解析
五行缺金女孩如何取名(女孩缺金取什么名字好)
遂宁至云南自由行全攻略:必去景点、行程规划与旅行贴士
烧心打嗝食道灼热?这份饮食指南请收好
林宛瑜的幸福与烦恼:从《爱情公寓》看独立女性的成长与选择
2025退税指南:税优健康险和个税递延型养老保险详解