面试题| 纯虚函数

纯虚函数

初识纯虚函数

● 纯虚函数只在基类中声明,但没有定义,因此没有函数体。

● 纯虚函数的声明只需在虚函数形参列表后面添加 =0 即可。

含有纯虚函数的类都是抽象类

只含有纯虚函数的类称为接口类。

函数声明

纯虚函数的声明很简单,就是在虚函数的形参列表后面添加一个 =0 即可,如:

class Cat {
  public:
    virtual void eat()=0;
};

纯虚函数与抽象类

含有纯虚函数的类称为抽象类(注意!!只要含有就是)。什么是抽象类?它有以下几个特点:

抽象类不能实例化对象。

抽象类的派生类也可以是抽象类(会继承)也可以通过实现全部的纯虚函数使其变成非抽象类,从而可以实例化对象。

抽象类的指针可以指向其派生类对象,并调用派生类对象的成员函数。

举个例子,在基类Cat中有两个纯虚函数eat()和sleap(),基类不能直接实例化一个对象来调用这两个函数,但在其派生类CatA和CatB中,可以通过实现这两个函数

おすすめ

転載: blog.csdn.net/weixin_54707168/article/details/120630593