C++多態(tài)意味著在調(diào)用成員函數(shù)時,會根據(jù)調(diào)用函數(shù)的對象的類型來執(zhí)行不同的函數(shù)
#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;
//調(diào)用三角形的求面積函數(shù) area
shape -> area();
return 0;
}