C++抽象类和纯虚函数

C++中的抽象类是指包含至少一个纯虚函数的类。纯虚函数是指没有实现,需要在派生类中重写的函数。

例如,下面是一个抽象类的例子:

class Shape {
public:
    virtual float getArea() = 0; // 纯虚函数
    virtual float getPerimeter() = 0; // 纯虚函数
};

这个Shape类包含两个纯虚函数getArea()getPerimeter(),因此它是一个抽象类。任何继承自Shape的类都必须实现这两个函数。例如:

class Circle : public Shape {
public:
    Circle(float radius) : radius_(radius) {}
    float getArea() override { return 3.14f * radius_ * radius_; }
    float getPerimeter() override { return 2 * 3.14f * radius_; }
private:
    float radius_;
};

在这个例子中,Circle类继承自Shape类并实现了getArea()getPerimeter()函数。其他继承自Shape的类也可以实现这两个函数,但它们必须实现这两个函数才能被实例化。因此,抽象类可以用来强制派生类实现某些函数,从而提供一种强制类型检查的方法。

总结

抽象类主要用作强制接口定义,如果要求派生类必须实现几个函数,就可以考虑做成虚函数,强制要求派生类实现。

你可能感兴趣的:(c++,开发语言)