C++面试常问问题有哪些?C++核心知识点与面试题汇总【求职必备】

admin 百科 13
C++面试重在考察问题定位能力、工程意识与避坑经验,核心聚焦内存管理、面向对象、指针引用、类型转换与const四大模块。

C++面试常问问题有哪些?C++核心知识点与面试题汇总【求职必备】-第1张图片-佛山资讯网

面试官问C++,不是考你背了多少语法,而是看你能多快定位问题本质、有没有工程意识、能不能避开常见坑。下面这些是真实高频出现的问题,按实际考察逻辑归类,不堆砌、不罗列。

内存管理:栈、堆、智能指针怎么用才安全

栈由系统自动管理,函数结束就释放,适合小对象和临时变量;堆由程序员控制,用 new/deletemalloc/free 申请,但必须配对释放——漏掉就是内存泄漏,重复释放就是未定义行为。

智能指针是重点:

  • unique_ptr:独占所有权,不能拷贝,只能移动,析构时自动 delete;
  • shared_ptr:共享所有权,带引用计数,计数归零才释放;注意循环引用——两个对象互相 hold 对方的 shared_ptr,计数永远不为 0;这时得用 weak_ptr 打破循环;
  • 不要混用 new 和 shared_ptr:比如 shared_ptr<int>(new int(42))</int> 是 OK 的,但 int* p = new int(42); shared_ptr<int> sp(p);</int> 就危险——万一别人也 delete p,就崩了。

面向对象:虚函数、多态、析构函数为什么必须虚

虚函数是运行时多态的基础。父类指针指向子类对象时,调用虚函数能走到子类实现,靠的是虚函数表(vtable)和虚表指针(vptr)。

立即学习“C++免费学习笔记(深入)”;

关键细节:

标签: 字节 c++ 区别 隐式转换 为什么 red

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~