21xrx.com
2024-05-20 20:18:47 Monday
登录
文章检索 我的文章 写文章
C++中如何简单使用抽象类
2023-07-05 10:01:15 深夜i     --     --
C++ 抽象类 继承 纯虚函数 实现

抽象类是C++中的一个特殊的类,它包含纯虚函数,这些纯虚函数没有函数实现。这些纯虚函数需要在子类中进行实现,因此抽象类不能被直接实例化,只能作为其他类的基类来使用。

在C++中,使用抽象类非常简单。首先,需要定义一个抽象类。这个抽象类将包含一个或多个纯虚函数。这些纯虚函数通常都是类的基本功能,因此需要由子类来实现。

以下是一个简单的抽象类的定义示例:


class Shape {

public:

  virtual double getArea() = 0;

};

在上面的例子中,Shape是一个抽象类。它定义了一个纯虚函数getArea(),用于获取形状的面积。此函数需要由子类来实现。

假设我们有一个正方形类和一个圆形类。可以让这两个类继承Shape抽象类,并实现getArea()函数。以下是一个示例:


class Square: public Shape {

public:

  double side;

  double getArea() {

    return side * side;

  }

};

class Circle: public Shape {

public:

  double radius;

  double getArea() {

    return 3.14 * radius * radius;

  }

};

在上面的例子中,Square和Circle都是子类,它们从Shape抽象类继承了getArea()函数,并实现了这个函数。在Square类中,getArea()函数返回正方形的面积;在Circle类中,getArea()函数返回圆形的面积。

在主函数中,可以通过以下方式使用这些类:


int main() {

  Shape* shape;

  Square square;

  Circle circle;

  shape = □

  shape->side = 5;

  std::cout << "Square area = " << shape->getArea() << std::endl;

  shape = &circle;

  shape->radius = 5;

  std::cout << "Circle area = " << shape->getArea() << std::endl;

  return 0;

}

在上面的代码中,首先定义了一个Shape指针,并创建了Square和Circle对象。然后将shape指针指向Square对象,并设置正方形的边长为5。接着,通过调用getArea()函数获取正方形的面积,并输出结果。

然后将shape指针指向Circle对象,并设置圆形的半径为5。同样,通过调用getArea()函数获取圆形的面积,并输出结果。

因为Shape是一个抽象类,不能被直接实例化,因此需要通过子类来使用。在上面的例子中,Square和Circle类继承了Shape抽象类,并实现了getArea()函数,从而使得它们可以被Shape指针引用。这就是C++中使用抽象类的基本方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复