- 指针和引用相同点和不同点
- 预处理、编译、汇编、链接
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的内存地址
