我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:彩66彩票 > 多态 >

C++多态性。 基类的虚函数和重载函数的区别是不是一个是在运行时

归档日期:06-27       文本归类:多态      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  是的,函数的重载是在编译的时候发生,而虚函数是在运行的时候确定。其实有时候称函数的重载为静态多态性,而虚函数为动态多态性

  3)如果定义了派生类并且派生类重载了虚函数(纯虚函数必须重载,虚函数未必要重载)

  用基类指针和引用调用虚函数时,如果该指针或引用实际指向或代表的对象是派生类的对象,并且该派生类重载了该虚函数,则调用的就是派生类重载了的虚函数,而不是基类的虚函数。这就是面向对象中的多态在C++中的实现方式了。

  2)如果基类定义了派生类而且没有任何派生类重载了某个虚函数,则没有同名函数的基类的虚函数就依然不是重载函数;

  6)有纯虚函数的类,有一个完全实现版本的派生类的话(可以定义对象),则一定是所有纯虚函数一定都会被重载。

  7)基类和派生类的析构函数如果是虚函数则一定是重载函数(这是唯一的不同名函数的明确的函数重载)追问。。。这个太长了,文不切题追答函数同名叫做函数重载,这个不长了吧;

  2)派生类和基类的虚析构函数(必须派生类重新定义了析构函数),虽然不同命名,也是重载函数。

  3)被派生类重载了的基类的虚函数(重新定义了的)和派生类的同名函数是重载函数。

  4)没有被派生类重载了的基类的虚函数(重新定义了的)不是重载函数( 重载函数必须有多于一个的定义)。

  6) 派生类重载基类的虚函数,一般要求参数个数和类型以及定常性(是否常函数)必须相同 ,不然会被屏蔽,并有可能产生二义性(这点非常诡异哦!千万要注意了!)。

  指针本身的类型,和所指对象类型不同,但是由于继承体系的关系,虚函数会随着指针所指对象的类型变化调用不同类型定义的虚函数;

  3)除了返回值是基类的指针,派生类的返回值可以是派生类指针外,虚函数的返回值也必须和基类一致。

  必须重载虚函数(不一定会重载,编译器只会要求,纯虚函数必须重载)才能够实现多态!!!

  展开全部虚函数在基类中声明 用virtual修饰 但是并不实现 ,只是在子类继承基类时才实现

  重载函数是基类中已经有某个函数,当子类继承时重新实现(基类已实现)覆盖基类的方法。

本文链接:http://chapmanswifts.com/duotai/578.html