您当前的位置:首页 > 时尚 > 内容

虚函数实现多态性(在c 中虚函数和多态性是什么意思)

导读 大家好,小跳来为大家解答以上的问题。虚函数实现多态性,在c 中虚函数和多态性是什么意思这个很多人还不知道,现在让我们一起来看看吧!1...

大家好,小跳来为大家解答以上的问题。虚函数实现多态性,在c 中虚函数和多态性是什么意思这个很多人还不知道,现在让我们一起来看看吧!

1、多态是指使用相同的函数名来访问函数不同的实现方法,即“一种接口,多种方法”,用相同的形式访问一组通用的运算,每个运算可能对应的行为不同。

2、C++支持编译时多态和运行时多态,运算符重载和函数重载就是编译时多态,而派生类和虚函数实现运行时多态。

3、运行时多态的基础是基类指针,基类指针可以指向任何派生类对象。

4、虚函数与基类指针在一起时会有奇妙的现象。

5、1.虚函数是为了实现多态而存在的请看以下程序:#include <vir();//子类起作用,虚函数多态的用处,显示 son vir,具体参见下面解释 return 0;}输出:[root@localhost root]# ./virson novirson virfather novirfather virfather novirson vir例如:父类为 车,子类为汽车 子类指针不能指向父类对象(即将父类对象赋值给子类指针):因为子类中有些信息父类没有,如果用指针访问的时候很可能访问到父类没有的一些属性及函数,会出错。

6、父类的对象可以有很多,自行车,摩托车,轿车等,如果用一个父类的对象赋给子类汽车的指针,汽车有的属性,例如发动机,父类对象就没有,会产生错误。

7、父类指针可以指向子类对象(即将子类对象赋值给父类指针):由于继承的关系,子类对象同样也是父类的对象,例如:汽车有轮子,汽车也属于车,父类车也有轮子,这种情况下,子类对象就成为了父类的一个对象,所以只能操作父类有的属性及函数。

8、对于那些父类没有的属性,必须将父类指针强制转化为子类指针后才可使用。

9、虚函数的多态体现我们都知道,程序运行的过程要经过 预处理,编译,运行,链接等步骤。

10、虚函数在程序运行的时候才被绑定,编译的时候不进行相关处理,只有运行的时候才对其进行相关操作。

11、 所以在程序片:======================================================= F *ff; ff = &s;//将一个父类指针指向一个子类对象;子类指针不能指向父类对象 ff->novir();//父类起作用,显示father novir ff->vir();//子类起作用,虚函数多态的用处,显示 son vir======================================================= 程序在运行时决定调用虚函数的哪个定义,这个决定依赖于基类型指针所指向的对象的类型。

12、通过点运算调用虚函数时,忽略了虚函数的多态性,**只有**使用***基类型指针访问虚函数***,运行时的多态性才得以体现。

13、即C++根据指针指向对象的类型来决定调用虚函数的哪个定义,在这里,指针所指向的类型为子类对象,所以虚函数使用子类的函数。

本文到此分享完毕,希望对大家有所帮助。


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 三星i809报价(三星9800手机报价)

下一篇: 深咖色半裙配什么颜色上衣好看(深咖色)



推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号