C++中的纯虚函数、抽象类、接口

要了解纯虚函数,先要知道虚函数是什么:https://blog.csdn.net/leviopku/article/details/83004563

纯虚函数就是没有函数体的虚函数,通常都以下列格式定义纯虚函数:

class <类名>
{
    virtual <类型><函数名>(形参表) = 0;
    ...
}

在虚函数后面加"=0",这并不代表虚函数返回值为0,这只是纯虚函数的表示形式。纯虚函数是一种特殊的虚函数。

我们说,如果一个类中含有纯虚函数(一个及以上),则这个类就是一个抽象类。C++的抽象类判定条件就是看这个类是否含有纯虚函数。

对于含有纯虚函数的类,也就是我们说的抽象类,是不能实例化的。同时,也没有必要实例化抽象类。因为抽象类的诞生就是作为基类来使用的,为其派生类做贡献。这样,我们就可以用抽象类(基类)指针调用子类函数了。


接口

C++中的接口的定义也和纯虚函数有关。接口是一种特殊的类,比抽象类还要特殊:

如果一个类里包含纯虚函数,那么这个类就是抽象类

如果一个类中只包含纯虚函数,那么这个类就是一个接口

所以,接口也是一种特殊的抽象类。

猜你喜欢

转载自blog.csdn.net/leviopku/article/details/83063181