多态
多态是一种泛型编程思想,即同样的代码,实现不同的功能
父类的指针,调用子类的函数
虚函数是实现这个思想的语法基础
父类的指针指向子类空间:CFather *p = new CSon;
父类的一个指针,可以有多种执行状态,即多态
重写:父类和子类相同,父类是虚函数,叫做重写
子类重写的函数,默认是虚函数,可以显示加virtual,也可以不加
即父虚子也虚
知识点:协变
#include <iostream>
using namespace std;
class CFather
{
public:
virtual void Show()
{
cout << "class CFather\n";
}
virtual ~CFather()
{
cout << "~CFather" << endl;
}
};
class CSon : public CFather
{
public:
int a;
void Show()
{
cout << "class CSon\n";
}
~CSon()
{
cout << "~CSon" << endl;
}
};
class CDaughter : public CFather
{
public:
int a;
void Show()
{
cout << "class CDaughter\n";
}
};
int main()
{
CFather *fa = new CSon;
fa->Show();
CFather *fat = new CDaughter;
fat->Show();
delete fa;
delete fat;
system("pause");
return 0;
}