21xrx.com
2024-12-23 00:54:25 Monday
登录
文章检索 我的文章 写文章
C++继承与派生的示例题目
2023-07-07 05:09:03 深夜i     --     --
C++ 继承 派生 示例题目 oop编程

C++是一种面向对象的编程语言,它拥有丰富的继承与派生的特性。在本篇文章中,我们将以一个示例题目来介绍C++中继承与派生的用法。

假设我们有两个类,一个是Shape(图形)类,另一个是Circle(圆形)类。我们希望Circle类从Shape类中继承一些属性,并且还要有自己的属性和方法。

那么我们可以采用以下的代码来实现这个需求:


class Shape { //Shape类定义

  protected:  //protected关键字使派生类可以访问该属性和方法

   int width;

   int height;

  public:

   void setWidth(int w)

     width = w;

   

   void setHeight(int h)

     height = h;

   

};

class Circle: public Shape { //Circle类继承Shape类

  public:

   int radius;

   int getArea() {

     return 3.14 * radius * radius;

   }

};

int main() {

  Circle c; //创建Circle类的对象c

  c.setWidth(5);   //调用从Shape类继承的方法

  c.setHeight(10);  //调用从Shape类继承的方法

  c.radius = 7;    //为Circle类的自有属性radius赋值

  //输出Circle类的面积

  cout << "Total area: " << c.getArea() << endl;

  return 0;

}

在上述代码中,我们定义了Shape类,并将width和height两个属性设置为protected,以便Circle类可以继承这些属性。然后我们定义Circle类,并使用public继承关键字将Shape类作为其基类。这样,在Circle类中我们就可以使用Shape类的属性和方法了。

接着,我们定义了Circle类的自有属性radius,并通过调用Circle类的方法getArea()来计算其面积。

最后,在main函数中,我们创建了一个Circle类的对象c,并通过调用setWidth()和setHeight()方法来设置Shape类的属性。然后我们为Circle类的radius属性赋值,并使用getArea()方法来计算Circle类的面积。

总的来说,C++中的继承与派生非常灵活,程序员可以根据自己的需求来选择不同的继承方式来实现代码复用和扩展。

  
  

评论区

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