#include <iostream>
using namespace std;
//C++多态意味着调用成员函数时,会根据调用函数的类型来执行不同的函数
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 << "Triangle class area" << endl;
		return (width*height/2);
	}
};
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;
	shape->area();
	
	system("pause");
	return 0;
}