关于 C++ 面试

Posted on Wed 31 August 2022 in Journal

经济肉眼可见的萧条下去了,大厂小厂都在减员增效,裁员大潮席卷而来,找工作越来越难了。

Java, Python, C++ 是传统的三大面试语言, 这两年 Go 有后来居上的势头

现代 C++ 从 11, 14, 17 及 20 一直以来发展迅速,知识点繁多

基础

  • 函数的用法
  • 一致性初始化
  • 模块的基本用法(C++20)
  • 头文件语法, 用宏或者 #pragma once 来避免重复包含
  • 名称空间和嵌套名称空间的用法
  • 语言基础知识,如几种循环,条件运算符和变量等
  • 三向比较运行符(c++20)
  • 枚举类型
  • 堆栈和堆之间的差异
  • 动态分配的数组
  • const 的使用
  • 指针和引用的含义,以及二者的区别
  • 引用在声明时必须绑定在变量上且不能改变
  • 引用传递相对于值传递的优点
  • auto 关键字
  • 标准库容器的基本用法
  • 结构化绑定
  • 使用 std::pair 和 std::optional
  • 类型别名和 typedef, using 的原理
  • 不同类型和作用域的属性

字符串,字符串视图,本地化与正则表达式

编码风格

如何设计专业的 C++ 程序

面向对象设计

设计可重用的代码

内存管理

掌握类和对象

掌握继承技术

零碎的工作

利用模板编写泛型代码,高级模板

C++ IO

错误处理

C++ 运算符重载

标准库

日期和时间工具

随机数工具

其他库工具

多线程编程

充分利用软件工程法

编写高效的 C++ 程序

熟练掌握测试技术

熟练掌握调试技术

使用设计技术和框架

应用设计模式

开发跨平台和跨语言的应用程序