holyya.com
2025-09-04 13:45:59 Thursday
登录
文章检索 我的文章 写文章
C++继承与派生的简单示例
2023-07-07 00:16:02 深夜i     --     --
C++ 继承 派生 简单示例 类型继承

在C++编程中,继承与派生是一种非常重要的概念,它可以节省编程时间,增强程序的可读性和可维护性。下面我们来看一个简单的示例来理解C++的继承与派生。

假设我们要定义一个图形类及其派生的圆形类和矩形类,我们可以先定义一个基类Graphic:


class Graphic {

public:

  double area();

  double perimeter();

};

这个基类有两个公有成员函数,分别计算图形面积和周长,至于实现,我们可以在派生类中再具体实现。

我们现在派生两个子类Circle和Rectangle:


class Circle : public Graphic {

public:

  Circle(double radius);

  double area();

  double perimeter();

private:

  double _radius;

};

class Rectangle : public Graphic {

public:

  Rectangle(double length, double width);

  double area();

  double perimeter();

private:

  double _length;

  double _width;

};

这里有一个关键词"public",它表示Circle和Rectangle继承了Graphic的公有成员,并且可以直接调用它们。

现在我们可以定义Circle和Rectangle子类的成员函数,下面是它们的实现:


double Circle::area() {

  return 3.1415926535898 * _radius * _radius;

}

double Circle::perimeter() {

  return 2 * 3.1415926535898 * _radius;

}

double Rectangle::area() {

  return _length * _width;

}

double Rectangle::perimeter() {

  return 2 * (_length + _width);

}

在这些子类成员函数中,我们可以直接调用基类Graphic的成员函数,这大大简化了程序的编写。

最后,我们可以在主函数中利用这些子类来实例化对象,并调用它们的成员函数来输出结果:


int main() {

  Circle circle(10);

  Rectangle rectangle(5, 20);

  cout << "Circle area: " << circle.area() << endl;

  cout << "Circle perimeter: " << circle.perimeter() << endl;

  cout << "Rectangle area: " << rectangle.area() << endl;

  cout << "Rectangle perimeter: " << rectangle.perimeter() << endl;

  return 0;

}

这里我们实例化了一个圆形对象和一个矩形对象,然后输出它们的面积和周长。

总结一下,继承与派生可以帮助我们快速编写复杂程序,而且使程序可读性和可维护性更好。在本篇文章中,我们通过一个简单的示例来理解了C++继承与派生的基本概念。

  
  

评论区

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