【C++】-抽象类

抽象类

如果基类只想表达一些抽象的概念,并不与实际的对象相关联,这时候就可以使用抽象类。

如果一个类中有纯虚函数,则这个类是一个抽象类。

如果一类是抽象类,则这个类中一定有纯虚函数。

纯虚函数也是虚函数的一种,这种函数只有声明,没有定义。

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

不能直接使用抽象类作为声明类型,不存在抽象类类型的对象。(不能实例化对象)

抽象类作为基类时,具有两种情况:

● 派生类继承抽象类,覆盖并实现所有的纯虚函数,此时派生类可以作为普通类使用,即不再是抽象类。

● 派生类继承抽象类,没有把抽象类中所有的纯虚函数覆盖并实现,此时派生类也变为抽象类。等待他的派生类覆盖并实现剩余的纯虚函数。

#include 

using namespace std;

// 抽象类 :形状
class Shape
{
public:
    // 纯虚函数
    virtual void area() = 0; // 面积
    virtual void perimeter() = 0; // 周长
    virtual ~Shape()
    {
    }
};
// 圆形
class Circle : public Shape
{
public:
    void area()
    {
        cout << "圆形计算面积" << endl;
    }

    void perimeter()
    {
        cout << "圆形计算周长" << endl;
    }
};

// 多边形
class polygon: public Shape
{
public:
    void perimeter()
    {
        cout << "多边形计算周长" <

使用抽象类需要注意以下几点:

● 抽象类的析构函数必须使用虚析构函数

● 抽象类支持多态,可以存在抽象类的指针或引用。

● 因为抽象类的作用是指定算法框架,因此在一个继承体系中,抽象类的内容相对丰富且重要。

你可能感兴趣的:(C++,c++)