多态:子类通过继承使用基类中元素,函数,避免重复定义。基类函数为虚函数或纯虚函数,具体功能要看子类相应函数。
代码:
#include<iostream>
using namespace std;
class Shape//定义基类
{
public:
Shape(int a,int b)//取长,高
{
width=a;
heigth=b;
}
virtual int area()=0;//纯虚函数,具体定义看派生类
protected:
int width,heigth;
};
class Rectangle:public Shape//公有继承
{
public:
Rectangle(int a,int b):Shape(a,b){}
int area()
{
cout<<"Rectangle class area :"<<endl;
return (width*heigth);//获得基类长高之积
}
};
class Triangle:public Shape
{
public:
Triangle(int a,int b):Shape(a,b){}
int area()
{
cout<<"Triangle class area :"<<endl;
return (width*heigth/2);//获得基类长高积的一半
}
};
int main()
{
Shape *shape;
Rectangle rec(10,7);
Triangle tri(10,5);
shape=&rec;
cout<<shape->area()<<endl;
shape=&tri;
cout<<shape->area()<<endl;
}
截图: