4.4C++纯虚函数和抽象类

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

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

纯虚函数没有函数体,只有函数声明,在虚函数声明结尾加上=0,表明此函数为纯虚函数。

最后的=0并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”。

包含纯虚成员函数的类称为抽象类(Abstract Class)。之所以说它抽象,是因为它无法实例化,也就是无法创建对象。原因很明显,纯虚函数没有函数体,不是完整的函数,无法调用,也无法为其分配内存空间。

抽象基类除了约束派生类的功能,还可以实现多态。

关于纯虚函数的几点说明:

1) 一个纯虚成员函数就可以使类成为抽象基类,但是抽象基类中除了包含纯虚成员函数外,还可以包含其它的成员函数(虚函数或普通函数)和成员变量。

2) 只有类中的虚函数才能被声明为纯虚成员函数,普通成员函数和顶层函数均不能声明为纯虚函数。

你可能感兴趣的:(4.4C++纯虚函数和抽象类)