多态性
多态性是面向对象程序设计的关键技术之一。若程序设计语言不支持多态性,不能称为面向对象的语言。利用多态性技术,可以调用同一个函数名的函数,实现完全不同的功能。
多态性(polymorphism)多态性是考虑在不同层次的类中,以及在同一类中,同名的成员函数之间的关系问题。函数的重载,运算符的重载,属于编译时的多态性。以虚基类为基础的运行时的多态性是面向对象程序设计的标志性特征。体现了类推和比喻的思想方法。
虚函数
虚函数是一个类的成员函数,定义格式如下:
virtual 返回类型 函数名(参数表)
关键字virtual指明该成员函数为虚函数。virtual仅用于类定义中,如虚函数在类外定义,不可加virtual(但是类内部声明时要加virtual)。
当某一个类的一个类成员函数被定义为虚函数,则由该类派生出来的所有派生类中,该函数始终保持虚函数的特征。
最后一句话如何理解?
#include<iostream> using namespace std; class Base { public: virtual void show() { cout << "This is Base show" << endl; } }; class D :public Base { public: void show() { cout << "This is D show" << endl; } }; class C :public D { public: void show() { cout << "This is C show" << endl; } }; void main() { C c; D *pd = &c; pd->show(); }