C++要点


C++

多态、重载、覆写

  • 多态:通过基类指针调用派生类方法。
  • 重载:同名函数不同参数。
  • 覆写:派生类重写基类虚函数。

STL的常用容器

vector、list、deque、set、map、unordered_map等。

  • vector:动态数组,支持随机访问。
  • list:双向链表,支持快速插入、删除。
  • deque:双端队列,支持快速插入、删除。
  • set:有序集合,支持快速查找。
  • map:有序键值对集合,支持快速查找。
  • unordered_map:无序键值对集合,支持快速查找。

迭代器失效,如何遍历删除

  • 迭代器失效:容器修改导致迭代器失效。
  • 遍历删除:使用erase方法,更新迭代器。

特化与偏特化,简单了解如何使用元编程(比如使用特化和偏特化实现递归)

  • 特化:为特定类型提供模板实现。
  • 偏特化:为部分类型提供模板实现。

虚函数表,多继承下虚函数表指针

  • 虚函数表:存储虚函数指针的表。
  • 多继承:每个基类有一个虚函数表指针。

析构和构造顺序

  • 构造顺序:基类先构造,派生类后构造。
  • 析构顺序:派生类先析构,基类后析构。

智能指针

std::unique_ptr、std::shared_ptr、std::weak_ptr。

  • unique_ptr:独占所有权,不能复制。
  • shared_ptr:共享所有权,引用计数。
  • weak_ptr:弱引用,不影响引用计数。

内存泄漏问题的定位

使用工具如Valgrind、AddressSanitizer定位内存泄漏。

  • Valgrind:内存调试工具,检测内存泄漏。
  • AddressSanitizer:内存错误检测工具,检测内存泄漏、越界访问。

文章作者: xucanxx
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 xucanxx !
  目录