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