天美 成都 游戏客户端开发 面经

面试时间: 2022/4/21
今天面试了天美的游戏客户端,部门没听清,好像是J2

面试时长30-40min
一、项目介绍
主要是围绕以前做过的项目介绍功能实现。
做这个功能是怎么想的。以及我用到了贝塞尔曲线,所以被问了贝塞尔曲线。
不记得曲线的公式了,只记得实现时的原理,感觉没有答好

二、图形学
之前的贝塞尔曲线也算图形学
光线是否打到三角形内
动画相关,mesh怎么跟着骨骼移动(感觉没答好)
还有一个问题忘了,我回答的是关键帧,具体每一帧位置角度对关键帧插值

三、c++八股
虚函数表的实现,多重继承时的内存分布
虚函数表是类内还是对象内(这一块没有答好)-->  虚函数表是针对类的,一个类的所有对象的虚函数表都一样
C++的编译器应该是保证虚函数表的指针存在于对象实例中最前面的位置(这是为了保证取到虚函数表的有最高的性能——如果有多层继承或是多重继承的情况下)。 
这意味着我们通过对象实例的地址得到这张虚函数表,然后就可以遍历其中函数指针,并调用相应的函数。目前gcc 和微软的编译器都是将vptr放在对象内存布局的最前面。
  • 虚函数表属于类,类的所有对象共享这个类的虚函数表。
  • 不同对象虚函数表是一样的(虚函数表的第一个函数地址相同);
  • 每个对象内部都保存一个指向该类虚函数表的指针vptr,每个对象的vptr的存放地址都不一样,但是都指向同一虚函数表。
vector和list的区别  -->  
        vector底层实现是数组;list是双向 链表。
        vector支持随机访问,list不支持。
        vector是顺序内存,list不是。
        vector在中间节点进行插入删除会导致内存拷贝,list不会。
        vector一次性分配好内存,不够时才进行2倍扩容;list每次插入新节点都会进行内存申请。
        vector随机访问性能好,插入删除性能差;list随机访问性能差,插入删除性能好。

强制转换相关 --> 多重继承下,子类指针原本指向子类, 现在强制转换指针类型,问怎么变换的 (没有答好)
自定义类时,静态转换会判断转换类型之间的关系,如果转换类型之间没有任何关系,则编译器会报错,不可转换
class  A{};  
class  B   : public A{};  
class  C{};  
void main() { 
A *pA =  new A; 
B *pB =  static_cast<B*>(pA);  // 编译不会报错, B类继承于A类
pB =  new B;
                
pA =  static_cast<A*>(pB);  // 编译不会报错, B类继承于A类 
C *pC =  static_cast<C*
                    >(pA)  // 编译报错, C类与A类没有任何关系。error C2440: "static_cast": 无法从"A *"转换为"C *"
                        
 }
                                



四、算法
乱序数组中找第k大的数 --> 可以用堆排序和快排实现
快排的基本思想,时间复杂度

五、其他
实习时间




#腾讯实习##实习##面经##C/C++#
全部评论
感谢分享,请问楼主C++八股文是自己看书总结还是看别人的面经?可以分享一下吗?
点赞 回复 分享
发布于 2022-04-23 09:47
感谢!!虚函数那里好详细
点赞 回复 分享
发布于 2022-04-21 20:41

相关推荐

一、项目深挖从实习经历里挑一个最能体现技术能力、最有挑战的项目详细聊聊。这个功能整体研发大概多少人参与?在这个项目里压力最大、最棘手的事情是什么?你做了哪些重要的设计决策,这些决策带来了什么效果?更新数据库状态和推送不是原子操作,你当时是怎么权衡的?想保证这两个异步操作绝对一致性,有什么办法?延伸场景:先写数据库&nbsp;A&nbsp;再写数据库&nbsp;B,要求同时成功&nbsp;/&nbsp;同时失败,怎么设计?项目用户量、QPS&nbsp;大概多少?有出现客户投诉吗?功能上线后怎么验证、保证系统稳定?出现异常需要线上应急吗?你设置了哪些告警指标?从现在视角看,你会设置哪些指标观测系统稳定性?二、Full&nbsp;GC&nbsp;问题排查介绍下当时遇到的&nbsp;Full&nbsp;GC&nbsp;问题,以及完整排查过程。三、AI&nbsp;&amp;&nbsp;Web&nbsp;Coding&nbsp;相关如果用&nbsp;Web&nbsp;Coding&nbsp;写这个系统,你会怎么设计提示词?AI&nbsp;生成代码不可控,你怎么约束、确保符合预期?有没有试过用&nbsp;Web&nbsp;Coding&nbsp;写项目,过程中最大问题是什么?业界怎么解决&nbsp;AI&nbsp;思考慢、反复出错的问题?有没有考虑用&nbsp;AI&nbsp;做测试用例提效,做&nbsp;TDD&nbsp;开发?如果设计一个&nbsp;AI&nbsp;研发&nbsp;+&nbsp;测试的协作&nbsp;team,怎么设计?研发&nbsp;Agent&nbsp;和测试&nbsp;Agent&nbsp;之间怎么交互,避免越改越偏?大模型上下文有限,Claude&nbsp;类产品怎么保证长代码迭代不丢失注意力?四、职业规划&nbsp;&amp;&nbsp;行业选择工作之后的职业规划是怎样的?想从事什么行业&nbsp;/&nbsp;业务场景,为什么?了解蚂蚁国际是做什么的吗,为什么投这个岗位?五、算法&nbsp;&amp;&nbsp;限流(核心编程题)手撕实现滑动窗口限流(1&nbsp;分钟级别)。单机限流会有什么问题?多线程场景下,单机限流是否还有效?扩展为集群全局限流,怎么调整逻辑?用&nbsp;Redis&nbsp;做全局限流,会选用哪种方案?
查看30道真题和解析
点赞 评论 收藏
分享
评论
13
86
分享

创作者周榜

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