腾讯实习-PCG一面面经

base 深圳 客户端开发

面了一个多小时,八股文盛宴

  1. 自我介绍
  2. 简单拷打项目
  3. 写一个空类,编译器会自动生成哪一些函数?
  4. 追问:有移动赋值吗?为什么?
  5. 空类大小是多少?
  6. 追问:一定是 1 吗?可以自己去更改这个大小吗?
  7. 如果在类中字节写了析构函数,会影响编译器对其他函数的默认生成吗?
  8. 假设在类中有一个成员变量,是 std::string 类型,列表初始化和构造函数里面初始化有什么区别?
  9. 哪些变量是一定要在列表里面初始化的?
  10. 看一段代码,运行结果是什么?
#include <iostream>

class A {
public:
    void func1() {
        std::cout << "1" << std::endl;
    }

    virtual void func2() {
        std::cout << "2" << std::endl;
    }
};

int main() {
    A* a = nullptr;
    a->func1();
    a->func2();
    return 0;
}
  1. 追问:为什么?
  2. 追问:调用 func2 的流程是怎么样的?
  3. 说一下虚函数指针是什么?
  4. 追问:那怎么去找虚函数表?
  5. C++ 里面有 4 种强制类型转换,分别说一说是哪四种?
  6. 追问:那 dynamic_cast 是怎么检测是不是子类类型的?
  7. 追问:那 static_cast 还可以转换什么?
  8. 说一说智能指针
  9. 什么时候用 std::weak_ptr
  10. 追问:那 std::weak_ptr 是怎么检测当前还有没有 std::shared_ptr 的?
  11. 追问:那 std::shared_ptr 的结构是什么?
  12. std::shared_ptr 线程安全吗?
  13. 说一说 std::vectorstd::deque 的区别?
  14. 说一下 std::move 有什么用?
  15. 怎么区分左值还是右值?
  16. 追问:那我现在写了一个函数,它接受的参数是一个 std::unique_ptr,那接受的这个参数是左值还是右值?
  17. 什么是完美转发?
  18. 多线程中经常要用锁,请你介绍一下你了解哪些锁?
  19. 自旋锁和互斥锁的区别是什么?
  20. 写代码怎么去避免死锁?
  21. 场景题:比如说现在要监控一个主线程,主线程可能会死锁,也可能是没有死锁但是卡死了,我们有没有什么办法去感知这个事情呢?
  22. 追问:现在程序在用户那里,你要把这个事情上报下来,你会怎么做?
  23. 追问:我怎么知道这个程序有没有卡死或者死锁了?
  24. 追问:但是我们又怎么知道他在是哪个函数,哪一行代码里面的?
  25. 后面又根据回答疯狂追问
  26. 谈一谈 TCP 的拥塞控制
  27. 最后手撕 K 个一组翻转链表(一开始停止条件写错了,写了个死循环之间把OJ卡机了,提交不了新代码,后面改A出来了)
  28. 反问

下午面完,晚上就挂了

面试官人很好,答不出来的问题会做引导。但自己太菜了,有答错的地方,场景题招架不住,后面追问环节,脑袋已经宕机了,没有遇到过这种情况。还要继续背八股,深入基础

#牛客AI配图神器#

#凉经##PCG##腾讯##C++#
全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客企业服务