中望一面

更新:已约8.30二面
----------------------------------------------

A派生B,B派生C,C派生D,每一层都重写了A里面的虚函数。一个D指针指向D对象,能不能通过这个指针调用B里面实现的虚函数?

我觉得不行吧
全部评论
子类是继承父类的虚表的,所以子类肯定可以访问(要有权限)父类的虚函数的,d->B::fun()就可以了。 麻烦的是一个指向B对象的B指针如何调用D的虚函数,这个问题就变了很多了,不在类里面做一些手脚是无法直接调用的,比如CRTP模式。
4 回复 分享
发布于 2023-08-25 09:02 浙江
这样: ((B) (*D_ptr) ).func()
2 回复 分享
发布于 2023-08-23 18:10 广东
好像能够用::调 似乎在primer里面看到过
2 回复 分享
发布于 2023-08-21 20:15 北京
同学请问一下约完多久收到邮件链接呢,hr跟我约的30号一面,没给发邮件
1 回复 分享
发布于 2023-08-30 00:50 四川
草,我今天就是这个问题,我说了::这个,不知道对不对
点赞 回复 分享
发布于 2023-09-14 23:09 江苏
虽然我看到这个问题也不知道有哪些方法可以调用,但是我感觉是可以调用的,因为类的继承是成员函数的调用权限继承和成员变量的内存继承,子类继承父类的调用权限之后,如果在子类作用域之内重载虚函数就是重写/覆盖,如果出现与虚函数同名的函数就是隐藏,但是隐藏的函数一样可以调用,就是用作用域运算符强制调用,所以我感觉是可以的。
点赞 回复 分享
发布于 2023-08-26 16:23 北京
不行吧,感觉是基类的指针或者引用绑定派生类对象才能实现动态多态
点赞 回复 分享
发布于 2023-08-23 16:57 辽宁
base哪里的
点赞 回复 分享
发布于 2023-08-21 18:03 广东
d指针指向d类对象,调用的肯定是d重写的虚函数啊,如果是指向b类对象,还有的讨论
点赞 回复 分享
发布于 2023-08-21 17:49 陕西

相关推荐

02-01 12:05
复旦大学 Java
腾讯的提前批大概率应该是没有笔试的,但是这个时候有相当部分的同学简历估计都没有准备好,没准备好的同学也不用急,大部分都是3月之后开,这个时候开的绝大多数都是神仙打架,问的东西也比较难,打算投递的同学也多看下计算机网络和操作系统,腾讯对这部分的知识问的比较多。另外多刷下牛客的热门题库,刷题注意刷ACM模式,和牛客的周赛题,腾讯有的部门会从这里面出原题。我是@程序员花海关注我,带你了解更多校招资讯!
程序员花海:还没有来得及准备的同学可以看下学习路线:https://www.nowcoder.com/discuss/824693499982315520?sourceSSR=users算法题:https://www.nowcoder.com/feed/main/detail/20e7a999fa04485b88340a274411ca0d?sourceSSR=users八股文:https://www.nowcoder.com/discuss/833102362771251200?sourceSSR=users简历书写方式:https://www.nowcoder.com/discuss/839907820706205696?sourceSSR=users都是以前在牛客发的文章~
软开人,秋招你打算投哪些...
点赞 评论 收藏
分享
评论
5
23
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务