永发信息网

C++关于虚函数的问题,求大神帮忙解答下,谢谢

答案:1  悬赏:20  手机版
解决时间 2021-03-01 20:47
  • 提问者网友:咪咪
  • 2021-03-01 06:32
C++关于虚函数的问题,求大神帮忙解答下,谢谢
最佳答案
  • 五星知识达人网友:夜风逐马
  • 2021-03-01 07:03
再基类和派生类中都定义了同名虚函数,此时根据基类指针调用这两个虚函数也分别怎么做。
光同名不行,如果同名,但是参数表有所不同,那么派生类的虚函数(必须写virtual字样,如果你希望它也虚函数的话),他们算是两条不同的虚函数体系线,即分别是各自虚函数体系的起点,而且因为同名隐藏机制,派生类的同名函数会遮蔽基类的,至于基类调用,你可以这么想,基类指针能看见的内容都是依据其自身类型的,所以如果同名不同参,那么实际上并不会调用派生类中的同名函数,此时,如果那个函数没有virtual字样的话,那个派生类中的函数甚至只是一个普通的成员函数了,和虚函数都没有关系了。
2.在基类中定义一个非虚函数,而在派生中定义了同名虚函数,此时要分别调用它们要怎么操作基类指针
非虚函数就是普通成员函数,你说应该怎么调用,派生类中的同名虚函数只对这个派生类的派生类起虚函数作用,而且遵循我对第一个问题的回答,虚函数自起点位置向更下层的派生类才有影响,跟上层的类没啥关系的。
3.能不能同名函数基类为虚,派生不为虚。
我想你看了前面2个问题的回答,这个问题你自己都能回答了。


补充说一句:如果只同名,而不想归于同一个虚函数体系,那么我个人建议对非虚函数换个名字吧,或者虚函数使用v_fun或fun_v这样的,以示区别,因为不换名字的话,那么使用者会困惑的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯