商汤日常实习

商汤超大规模存储计算,然后,他们是做缓存,  文件系统这些的,cpp 多态怎么实现  然后呢什么问我虚函数表是什么,TCP结合就感觉面试官很有水平,问的很好啊
cache 有几层, 每层有多大 . 怎么和内存映射的?
  • 如何知道自己CPU的L2、L3的容量多大呢?当然可以用CPU-z,但其实可以有个更加简单的办法,在命令行输入:
wmic cpu get L2CacheSize,L3CacheSize
L1缓存的容量通常在32—256KB . 我背错了, 背成页表4KB 64KB  2MB 了. cao ,全背诵页大小去了. 裂开了.
台式机CPU的L2缓存一般为128KB到2MB或者更高,笔记本、服务器工作站上用CPU的L2高速缓存最高可达1MB-3MB。

为了实现C++的多态,C++使用了一种动态绑定的技术。这个技术的核心是虚函数表(下文简称虚表)。每个包含了虚函数的类都包含一个虚表。

我们知道,当一个类(A)继承另一个类(B)时,类A会继承类B的函数的调用权。所以如果一个基类包含了虚函数,那么其继承类也可调用这些虚函数,换句话说,一个类继承了包含虚函数的基类,那么这个类也拥有自己的虚表。   我们来看以下的代码。类A包含虚函数vfunc1,vfunc2,由于类A包含虚函数,故类A拥有一个虚表。

那么,什么时候会执行函数的动态绑定?这需要符合以下三个条件。

  • 通过指针来调用函数
  • 指针upcast向上转型(继承类向基类的转换称为upcast,关于什么是upcast,可以参考本文的参考资料)
  • 调用的是虚函数

如果一个函数调用符合以上三个条件,编译器就会把该函数调用编译成动态绑定,其函数的调用过程走的是上述通过虚表的机制。


算法 链表之和


#面试题目##商汤科技#
全部评论
还问其他问题了吗,我明天面商汤🤣
点赞 回复 分享
发布于 2022-01-05 19:50

相关推荐

6 12 评论
分享
牛客网
牛客企业服务