Dotcpp  >  编程教程  >  C++多态性  >  C++纯虚函数与抽象类总结

C++纯虚函数与抽象类总结

点击打开在线编译器,边学边练

纯虚函数与抽象类

纯虚函数,就是没有函数体的虚函数。什么叫没有函数体?就是这样定义的函数:

virtual 返回值 函数名(形参)=0;


可以看到,前面virtual与虚函数定义一样,后面加了一个=0。表示没有函数体,这就是一个纯虚函数。包含纯虚函数的类就是抽象类,一个抽象类至少有一个纯虚函数。


抽象类的存在是为了提供一个高度抽象、对外统一的接口,然后通过多态的特性使用各自的不同方法,是C++面向对象设计以及软件工程的核心思想之一。


抽象类的特点总结如下:

1. 抽象类无法实例出一个对象来,只能作为基类让派生类完善其中的纯虚函数,然后再实例化使用。

2. 抽象类的派生来依然可以不完善基类中的纯虚函数,继续作为抽象类被派生。直到给出所有纯虚函数的定义,则成为一个具体类,才可以实例化对象。

3. 抽象类因为抽象、无法具化,所以不能作为参数类型、返回值、强转类型。

4. 接着第三条,但抽象类可以定义一个指针、引用类型,指向其派生类,来实现多态特性。



本文固定URL:https://www.dotcpp.com/course/82

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

C++教程
第一章 C++入门
第二章 C++表达式和控制语句
第三章 C++函数调用与重载、内联
第四章 C++类和对象
第五章 C++继承与派生
第六章 C++多态性
第七章 C++异常处理
第八章 C++文件操作
Dotcpp在线编译      (登录可减少运行等待时间)