多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。
C++ 多态意味着调用成员函数时,据调用函数的对象的类型来执行不同的函数。
例如:
#include <iostream>
using namespace std;
class Shape {
protected:
int width, height;
public:
Shape(int a = 0, int b = 0): width(a), height(b) { }//初始化width, height
int area()
{
cout << "Parent class area :" << endl;
return 0;
}
};
class Rectangle : public Shape {
public:
//Rectangle(int a = 0, int b = 0) :Shape(a, b) { }
Rectangle(int a = 0, int b = 0)
{
width = a;
height = b;
}
int area()
{
cout << "Rectangle class area :" << width * height << endl;
return (width * height);
}
};
class Triangle : public Shape {
public:
Triangle(int a = 0, int b = 0) :Shape(a, b) { }//派生类先调用基类构造函数初始化width