纯虚函数和抽象类
概念
-
纯虚函数:没有函数体的虚函数。
-
抽象类:包含纯虚函数的类就称为抽象类。
-
纯虚函数就是在函数声明后面加上
= 0
,不写函数体。纯虚函数实际上是不存在的,引入纯虚函数是为了便于实现多态。
class A
{
public:
virtual void fun() = 0; // 纯虚函数
}
注意
-
抽象类不能生成独立的对象。
-
抽象类可以作为基类。
-
可以定义抽象类的指针或引用,并让他们指向或引用抽象类的派生类对象。
-
独立的抽象类的对象不存在,但是被包含在派生类对象中的抽象类的对象,是可以存在的。
-
如果一个类从抽象类派生而来,那么当且仅当它对基类的所有纯虚函数都进行覆盖并都写出了函数体(空的函数体
{}
也可以),它才能成为非抽象类。 -
在抽象类的成员函数内可以调用纯虚函数,但是在构造函数或析构函数内部不能调用纯虚函数。
网友评论