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;
       }
     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;

 shape -> area();

 shape = &tri;

//调用三角形的求面积函数 area
shape -> area();

return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。