多态的定义:同一种操作作用于不同的对象,有不同的解释,产生不同的结果。
c++中的多态分为两类:
1.编译时的多态:类中非虚成员的参数和返回值,确定不同的操作。
2.运行时的多态:到程序的运行的时候,才根据实际情况决定实现何种操作。派生类继承并覆写基类的虚函数成员。
以下是运行时多态的一个简单示例:
#include "stdafx.h"
#include <iostream>
#pragma warning(disable:4996)
#include <string>
using namespace std;
class base{
public:
virtual void print(void){
cout << "this is base" << endl;
}
};
class child1:public base
{
public:
virtual void print(void){
cout << "this is child1" << endl;
}
};
class child2:public base
{
public:
virtual void print(void){
cout << "this is child2" << endl;
}
};
void fun(base ¶)
{
para.print();
}
int main(int argc, char *argv[])
{
base test;
child1 a;
child2 b;
cout << "*************************************" << endl;
fun(test);/