C++纯虚函数和抽象类

  在C++中,可以将虚函数声明为纯虚函数,语法格式为:

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

纯虚函数没有函数体,只有函数声明,在虚函数声明的结尾加上=0,表明此函数为纯虚函数。最后的=0并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”。包含纯虚函数的类称为抽象类(Abstract Class)。之所以说它抽象,是因为它无法实例化,即无法创建对象。因为纯虚函数没有函数体,不是完整的函数,无法调用,也无法为其分配内存空间。

  抽象类通常是作为基类,让派生类去实现纯虚函数。派生类必须实现纯虚函数才能被实例化。派生类可以只实现抽象基类中的某一个纯虚函数,此时该派生类对象还不能实例化(该派生类仍是抽象类),必须是所有纯虚函数都在派生类中实现才可以实例化。

  抽象基类不需要被实例化,但是它为派生类提供了“约束条件”,派生类必须要实现抽象基类中的纯虚函数,完成对应的功能,否则就不能实例化。抽象基类除了约束派生类的功能,还可以实现多态。

  一个纯虚函数就可以使类成为抽象基类,但是抽象基类中除了包含纯虚函数外,还可以包含其它的成员函数(虚函数或普通函数)和成员变量。只有类中的虚函数才能被声明为纯虚函数,普通成员函数和顶层函数均不能声明为纯虚函数。如下:

1 //顶层函数不能被声明为纯虚函数
2 void fun() = 0;   //compile error
3 class base{
4 public :
5     //普通成员函数不能被声明为纯虚函数
6     void display() = 0;  //compile error
7 };

 

原文链接: https://www.cnblogs.com/Sheenagh/p/12318777.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++纯虚函数和抽象类

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/329700

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午5:15
下一篇 2023年3月1日 下午5:15

相关推荐