多态

来源:互联网 发布:servlet获取复选框数据 编辑:程序博客网 时间:2024/05/16 13:44

对象的类型
静态类型&动态类型
多态
【静态多态】编译在编译间完成的,编译据函数实参的类型(可能会进行隐式类型转换),可 出要调用个函数,如果有对应的函数就调用函数,则出现编译。
【动态多态】在程序行间(非编译)所引用对象的实际类型,据实际类型调用应的方 。
使用virtual关键字类的成员函数时,指明函数为虚函数,派生类需要重新实现,编译将实 现态定。
【动态绑定条件】
1、必须是虚函数 2、通过基类类型的引用或指针调用虚函数
纯虚函数
在成员函数的形参列表面写上=0,则成员函数为虚函数。包含虚函数的类象类(也 接口类),象类不能实例化出对象。虚函数在派生类中重新定义以,派生类才能实例化出对 象。
总结
1、派生类重写基类的虚函数实现多态,要函数名、参数列表、值完全同。(外)
2、基类中定义了虚函数,在派生类中函数始保持虚函数的特性。
4、如果在类外定义虚函数,只能在明函数时加virtual关键字,定义时不用加。
5 、构造函数不能定义为虚函数,可以将operator=定义为虚函数,但最好不要这,使用时容易混淆;
6、不要在构造函数和析构函数中调用虚函数,在构造函数和析构函数中,对象是不完整的,可能会 出现定义的行为。 、最好将基类的析构函数明为虚函数。(析构函数特殊,因为派生类的析构函数基类的析构 函数名称不一样,但是构成,这里编译了特殊) 、虚表是所有类对象实例用的

0 0
原创粉丝点击