华为OD技术面试高频考点(C++篇)

1. C++ 的基本特性有哪些?

核心答案:

-面向对象、泛型编程、模板元编程

-RAII资源管理、手动内存控制、强类型系统

2. new/delete vs malloc/free

区别对比:

-new/delete:C++运算符,触发构造/析构函数

-malloc/free:C库函数,仅分配/释放内存

3. 引用 vs 指针的区别?

关键点:

-引用:必须初始化、不可空、不可重绑定

-指针:可为空、可重指向、支持算术操作

4. 虚函数 vs 纯虚函数的作用?

一句话总结:

-虚函数:基类提供默认实现,子类可覆盖(运行时多态)

-纯虚函数:virtualfunc()=O; 强制子类实现,定义接口规范

5. C++11/14/17/20 新特性?

高频考点:

- C++11: ~auto / lambda /智能指针/右值引用

-C++17:结构化绑定/std::optional

-C++20:概念约束/协程/模块

6. vector 和 list 的区别?

容器对比:

-vector:动态数组,随机访问快(O(1)),尾部增删

-list:双向链表,任意位置增删快(O(1)),访问慢 (0(n)

7. const 的常见用法?

用法场景:

- 常量变量:^const int×= 5;

-函数参数/返回值:防止意外修改

-成员函数:void func() const;承诺不修改成员

8. shared _ptr vs unique_ptr

智能指针选择:

-shared_ptr:引用计数,允许多指针共享对象

-unique_ptr:独占所有权,性能更高,不可复制

9. 如何避免内存泄漏?

避坑指南:

-优先使用智能指针(RAII 患想)

-循环引用时用weakptr打破

-严格配对new/delete,避免裸指针

10.多态如何实现?

底层原理:

-虚函数表(vtable):每个含虚函数的类生成虚表

-动态绑定:运行时通过对象实际类型查表调用函数

总结

C++面试核心围绕 对象模型、内存管理、新特性展开,重

点理解:

-多态机制(虚函数表)

智能指针所有权(RAII设计思想)

-容器选择(时间/空间复杂度权衡)

速记关键词:虚函数、RAlI、const、右值引用、智能指针

#大厂##C++##八股文##华为OD##华为#
全部评论

相关推荐

评论
2
6
分享

创作者周榜

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