1 、抽象类
- C++抽象类是为子类抽象一个基类,抽象类的主要作用是为子类提供相同的属性和方法,其他如果需要在子类中修改方法,需要将其声明为纯虚函数。
- 含有一个及以上纯虚函数的类为抽象类
需要注意:抽象类虽然不能创建自己的对象,但是可以有自己的指针
class controller
{
public:
controller();
void func() = 0; // 纯虚函数,意味着这是一个抽象类
protected:
int x;
int y;
};
int main()
{
controller MPCController; //错误,抽象类不能有自己的对象
controller *p_controller; //正确,抽象类可以有自己的指针
}
虽然抽象类创建了一个抽象类指针,但是该指针依然不能指向自己,只能用来动态的指向子类对象。
注意
(1)如果子类中没有实现纯虚函数,而只是继承基类的纯虚函数,则这个子类仍然还是一个抽象类。
(2)如果子类中给出了基类纯虚函数的实现,则该子类就不再是抽象类,可以建立对象。