21xrx.com
2024-11-10 00:57:30 Sunday
登录
文章检索 我的文章 写文章
「C++ 经典多态代码」
2023-07-05 09:07:00 深夜i     --     --
C++ 经典 多态 代码 面向对象编程

C++编程语言是一种非常常用的编程语言,其强大的功能和灵活性使其在各行各业得到广泛应用。C++中的多态性是其一个非常重要的特性,使得程序能够更加灵活地处理不同的对象,并且可以在运行时执行这些对象的不同操作。

下面是一个C++ 经典多态代码:


#include <iostream>

using namespace std;

class Shape {

  protected:

   int width, height;

  public:

   Shape( int a=0, int b=0)

     width = a;

     height = b;

   

   virtual int area()

     cout << "Parent class area :" <<endl;

     return 0;

   

};

class Rectangle: public Shape {

  public:

   Rectangle( int a=0, int b=0):Shape(a, b) { }

   int area () {

     cout << "Rectangle class area :" <<endl;

     return (width * height);

   }

};

class Triangle: public Shape{

  public:

   Triangle( int a=0, int b=0):Shape(a, b) { }

   int area () {

     cout << "Triangle class area :" <<endl;

     return (width * height / 2);

   }

};

int main( ) {

  Shape *shape;

  Rectangle rec(10,7);

  Triangle tri(10,5);

  // 矩形面积

  shape = &rec;

  // 调用矩形的求面积函数 area

  shape->area();

  // 三角形面积

  shape = &tri;

  // 调用三角形的求面积函数 area

  shape->area();

 

  return 0;

}

上面的代码段中,定义了一个Shape类,它具有两个保护类型的成员变量width和height,并且具有一个公共的area()方法,是一个虚函数。然后分别定义了Rectangle类和Triangle类,都是从Shape派生出来的子类。Rectangle和Triangle类都有一个具有相同名称的area()方法,但是在运行时将根据所调用的对象类型来执行不同的代码。在主函数中,shape对象是Shape类的一个指针,然后分别将Rectangle和Triangle的对象地址赋值给shape对象,并且分别调用它们的area()方法。

上面的代码段让我们看到了C++中多态的强大功能,通过使用虚函数,C++让程序可以在运行时处理不同的对象,即在程序运行时才能决定调用哪个函数。这种机制可以让程序更加灵活,同时又能保持代码的简洁性和可读性。同时,这种机制还有一个好处就是当需要创建很多种类似的类的时候,只需要定义一个基类,然后根据需要定义不同的子类即可,在编程效率和代码复用性方面都具有很好的表现。

总的来说,C++中多态的实现是非常重要的,构建一个具有灵活性和扩展性的程序中,多态机制能够提供强大的功能支持,让程序可以更具迸发力和潜力。如果你正在学习C++,那么这个经典多态代码可以作为你的学习笔记和思考的参考,对于你以后的编程工作也会有很大的帮助。

  
  

评论区

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