• 指针和引用相同点和不同点
    • 预处理、编译、汇编、链接
    • typedef int& (*func) (int ,int );
    • 野指针(未初始化)和悬空指针(指针指向的内容不存在)
    • define
      • 定义标识符/定义宏
      • 文本替换、没有类型检查、在预处理阶段进行替换、在h文件中避免文件内容多次定义
    • typedef
      • 定义xx为yy
      • 用在函数指针、复杂类型定义简单别名、辅助声明结构体
    • inline
      • 将内联函数编译完生成的函数体直接插入被调用的地方,减少函数调用次数
      • 仅仅是对编译器的请求,编译器可能会拒绝这种请求
      • 会有类型检查
    • override
      • 对基类的虚函数进行重写,子类的前面不需要添加virtual,否则需要fix
      • 子类一定要重新定义基类的虚函数
    • protect
      • 继承的结构可以访问protect成员,但是不能访问private成员
    • 哪些函数不能被定义为虚函数 -
    • overload
      • 要求函数名相同,但是参数列表必须不同,返回值可以相同也可以不同
    • 重载、覆盖、隐藏 -
    • malloc 和 new 之间的区别
      • void* malloc(size_t size)
    • constexpr
    • static
      • 隐藏以及共享
    • a++是否是线程安全的?
      • 编译器得到的汇编指令是分为三部的:加载到寄存器、对寄存器的值相加、写回内存
    • int a = b是否是线程安全的?
      • 汇编中不能将内存中的某一处搬运到另外一处,必须借助寄存器中转
      • 需要先将b的值搬运到某个寄存器中,再从该寄存器搬运到变量a的内存地址