c++基础速刷,查漏补缺(一)

速刷知识点,可用来查漏补缺

指针和引用
指针:存放某个对象的地址
引用:变量的别名,从一而终,不可变,必须初始化
const变量
指针常量(底层const):指针所指的对象不可变
常量指针(顶层const):指针不可变
define和typedef的区别
define:
  1. 只是简单的字符串替换,没有类型检查
  2. 是在编译的预处理阶段起作用
  3. 可以用来防止头文件重复引用
  4. 不分配内存,给出的是立即数
typedef
  1. 有对应的数据类型,需要进行判断
  2. 在编译、运行的时候起作用
  3. 在静态存储区中分配空间
define和inline的区别
define:定义预编译时处理的宏,只是字符串替换,无类型检查,不安全。
inline:直接将函数体插入被调用的地方,减少了压栈,跳转和返回的操作。
内联函数是一种特殊的函数,会进行类型检查。
override和 overload
override:重写,覆盖
overload:通过不同的参数类型,不同的参数个数,不同的参数顺序进行重载。访问权限,返回类型,抛出的异常不进行重载
总结:重写只有一个,重载是将类似的函数用同一个名字,仅通过参数区分
多态是为了避免在父类中进行过多的重载
new和malloc
  1. new分配失败抛出异常,malloc返回nullptr
  2. new无需指定内存块的大小,malloc需要显示指出所需内存的尺寸
  3. new和delete可以重载,malloc和free不能重载
  4. new会调用对象的构造析构函数,malloc不会
  5. new是运算符,malloc是库函数
constexpr和const
constexpr:常量表达式
const:只读
constexpr的好处:确保某些数据无法被修改;部分场景编译器可以对constexpr做优化;比宏更安全,开销更少。
volatile
作用:要求编译器读取数据时,每次都从内存中重新装载内容,而不是从寄存器中拷贝
extern
定义:声明在函数或者文件外定义的全局变量
static
作用:实现多个对象之间数据的共享和隐藏;默认初始化为0
前置++与后置++
前置++返回左值(引用),后置++返回右值(临时对象)
std::atomic
作用:为了线程安全,使得原本线程不安全的语句变成“原子”语句,不再可分,从而实现线程安全。



遇到不会的知识点,欢迎在回复中提问,我会在回复中回答,或者另写文章具体讲解。
祝大家都能在秋招中斩获心仪的offer。

感谢阅读。
#c++##笔试##面试#
全部评论
第二个const变量是错误的,详情请看c++ primer 5th P56。应该为: 指针常量(底层const):指针所指的对象不可变 常量指针(顶层const):指针不可变
1 回复 分享
发布于 2022-09-04 10:12 河北
new和malloc,学到了,以前没这么详细的去了解
点赞 回复 分享
发布于 2022-08-18 20:42 陕西

相关推荐

头像
11-09 12:17
清华大学 C++
out11Man:小丑罢了,不用理会
点赞 评论 收藏
分享
冷艳的小师弟在看机会:jd测评乱点直接被挂了,哭死~
点赞 评论 收藏
分享
评论
4
16
分享
牛客网
牛客企业服务