多态性指的是不同对象接收到相同的指令做出不同的动作;
这里将用到一个关键字virtual;
下面是一个简单的例子:
#include <iostream>
#include <stdlib.h>
using namespace std;
class person {
public:
person() {
cout << "person的构造函数" << endl;
}
virtual void play() {
cout << "person-->play" << endl;
}
~person() {
}
};
class stu :public person {
public:
stu() {
cout << "stu的构造函数" << endl;
}
virtual void play() {
cout << "stu-->play" << endl;
}
~stu() {}
};
class kid :public person {
public:
kid() {
cout << "kid的构造函数" << endl;
}
~kid() {
cout << "kid的析构函数" << endl;
}
virtual void play() {
cout << "kid-->play" << endl;
}
};
int main()
{
person* s = new stu;
person* k = new kid;
s->play();
delete s;
k->play();
delete k;
system("pause");
return 0;
}
运行的结果如图所示:
啊啊啊啊安达如果不加关键字virtual将无法找到stu和kid各自的play()函数;
运行结果如图: