C++ 后端开发面试指南


目录

  1. 语言基础
  2. 面向对象
  3. 内存管理
  4. 智能指针
  5. STL 标准模板库
  6. C++11/14/17/20 新特性
  7. 多线程与并发
  8. 编译与链接
  9. 高频面试题与答案

一、语言基础

1.1 基本数据类型

类型 大小(64位系统) 范围
char 1 字节 -128 ~ 127
short 2 字节 -32768 ~ 32767
int 4 字节 -2^31 ~ 2^31-1
long 8 字节 -2^63 ~ 2^63-1
long long 8 字节 -2^63 ~ 2^63-1
float 4 字节 约 ±3.4e38
double 8 字节 约 ±1.7e308
bool 1 字节 true/false
指针 8 字节 -

1.2 const 关键字

// 1. 修饰变量 - 变量不可修改
const int a = 10;

// 2. 修饰指针
const int* p1 = &a;      // 指向常量的指针,*p1 不可改,p1 可改
int* const p2 = &b;      // 常量指针,p2 不可改,*p2 可改
const int* const p3 = &a; // 都不可改

// 3. 修饰成员函数 - 不修改成员变量
class MyClass {
    int getValue() const { return value; }  // const 成员函数
};

// 4. 修饰引用 - 常用于函数参数,避免拷贝且防止修改
void func(const std::string& str);

const vs #define vs constexpr

特性 const #define constexpr
类型检查 ✅ 有 ❌ 无 ✅ 有
作用域 遵循作用域规则 全局替换 遵循作用域规则
调试 可调试 不可调试 可调试
编译期求值 不保证 预处理期 ✅ 保证编译期