多态性:一个成员函数在父类及子类中的多种形态,即父类和子类可以拥有同一个函数(名称和参数都相同),但是功能不同的函数。
这意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。
关键词:virtual
在成员函数前加上virtual表示虚函数
使用:在父类和子类的函数前都加上virtual,这样在调用函数时,会分别执行不同的函数
一个多态的例子:
#include <cstdio>
#include <iostream>
using namespace std;
class Shape
{
//只能在子类中访问
protected:
int width,height;
public:
Shape(int a=0,int b=0)
{
width=a;
height=b;
}
//在成员函数前加上virtual表示虚函数
virtual 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 :" << width*height << endl;
return (width*height);
}
};
//三角形面积
cla