1.纯虚函数
形式:virtual 函数原型=0;
定义:在定义一个表达抽象概念的基类时,有时无法给出某些函数的具体实现方法,就可以将这些函数声明为纯虚函数。
特点:无具体实现方法。
2.抽象类
定义:声明了纯虚函数的类,都成为抽象类。
主要特点:抽象类只能作为基类来派生新类,不能声明抽象类的对象。(既然都是一个抽象概念了,纯虚函数没有具体实现方法,故不能创造该类的实际的对象)
但是可以声明指向抽象类的指针变量或引用变量,通过指针或引用,就可以指向并访问派生类对象,进而访问派生类的成员。(体现了多态性)
作用:因为其特点,基类只是用来继承,可以作为一个接口,具体功能在派生类中实现(接口)
#include <iostream>
using namespace std;
面向抽象类编程(面向一套预先定义好的接口编程)
//解耦合 ....模块的划分
class Figure //抽象类
{
public:
//约定一个统一的界面(接口),让子类使用,让子类必须去实现
virtual void getArea() = 0 ; //纯虚函数
protected:
private:
};
class Circle : public Figure
{
public:
Circle(int a, int b)
{
this->a = a;
this->b = b;
}
virtual void getArea()
{
cout<<"圆形的面积: "<<3.14*a*a<<endl;;
}
private:
int a;
int b