天天看点

多态、虚函数&纯虚函数

多态:是对于不同对象接收相同消息是产生不同的动作。

C++的多态性具体在运行和编译两方面有体现:在程序编译时多态性体现在函数运算符的重载上;在程序运行时多态体现在继承和虚函数的实现;

虚函数:在基类中冠以关键字virtual的成员函数,提供一种接口。只允许在派生类中对基类的虚函数重定义;

纯虚函数:在基类中为它的派生类保留一个函数的名字,一边派生类根据需要对它进行定义。虽然作为接口而存在然而并没有函数的功能,一般情况下,不能直接调用;

抽象类:至少有一个纯虚函数的类,抽象类中不仅包括纯虚函数,也可包括虚函数。抽象类必须用作派生其他类的基类,而不能用于直接创建对象实例,但仍可使用指向抽象类的指针支持运行时多态;(从基类中继承来的虚函数,在派生类中仍旧是虚函数);

以上为转载,并不完全保证正确性与完整性,以下自写;

多态:对于不同对象接收相同的消息时产生不同的动作;(多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作)

虚函数:在基类中声明时使用viratual关键字的成员函数,拥有具体的实现;当没有具体实现,即声明时使其直接=0,此时虚函数就是纯虚函数;

当在子类中,虚函数没有被重写时,派生类默认调用基类的接口,作与基类相同的动作,如果在派生类中有自己的同名成员函数,可以使用virtual关键字也可以不适用virtual关键字。

继续阅读