21xrx.com
2024-12-22 22:59:17 Sunday
登录
文章检索 我的文章 写文章
C++实现多个类共用一个函数
2023-06-27 10:49:57 深夜i     --     --
C++ 多个类 共用函数

C++是一种面向对象的编程语言,它允许程序员使用不同的类来建立对象。在实际编程中,我们经常需要让多个类共用一个函数,这时候就需要用到多态性。在C++中,多态性提供了一种灵活的方式来使不同的类对象使用相同的函数。

多态性是C++中最强大的概念之一,它允许不同的对象执行相同的操作,这是通过使用虚函数实现的。虚函数是一种特殊的函数,它可以被任意继承该函数的类重载,从而让这些类共享相同的函数体。

例如,我们有两个类:Rectangle和Circle,它们都拥有计算面积的函数。我们可以让这两个类继承自一个基类Shape,并将计算面积的函数设为虚函数。这样,无论我们通过Rectangle对象还是Circle对象调用计算面积函数,都可以得到正确的结果。


class Shape {

public:

 virtual double calculateArea()

  return 0;

 

};

class Rectangle : public Shape {

public:

 double width, height;

 virtual double calculateArea() {

  return width * height;

 }

};

class Circle : public Shape {

public:

 double radius;

 virtual double calculateArea() {

  return 3.14 * radius * radius;

 }

};

在这个例子中,我们先定义了一个基类Shape,它包含了一个虚函数calculateArea()。接着,我们定义了两个继承自Shape的类Rectangle和Circle,并都重载了calculateArea()函数。最后,我们就可以通过这两个子类来调用calculateArea()函数,获得正确的结果。


int main() {

 Shape* shape1 = new Rectangle();

 shape1->width = 4;

 shape1->height = 5;

 cout << "Rectangle area: " << shape1->calculateArea() << endl;

 Shape* shape2 = new Circle();

 shape2->radius = 3;

 cout << "Circle area: " << shape2->calculateArea() << endl;

 return 0;

}

在上面的代码中,我们创建了一个指向Rectangle对象的Shape指针,并给它的width和height属性赋值。接着,我们创建了一个指向Circle对象的Shape指针,并给它的radius属性赋值。最后,我们分别通过这两个指针调用calculateArea()函数,得到了正确的面积值。

通过虚函数和多态性的使用,我们可以使不同的类共用一个函数体,从而减少代码的冗余程度,提高代码的可维护性和可扩展性。在实际编程中,我们应该充分利用这个特性,从而写出更加优秀的程序。

  
  

评论区

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