很多计算机专业的大学生,在学习C++的时候,总会遇到一个问题,我该怎么学习C++,或者说该学习c++的那些内容?
我整理C++最重要的一些知识点,不仅局限于书籍教材中,更多的还有一些实际开发中比较重要的地方,去年花了一个月的时间准备了这些内容,就找到了at大厂实习。
内容较多,建议收藏以后慢慢看
C++必备知识点
基础知识
- 内存分区:全局区、堆区、栈区、常量区、代码区
- C++与C的区别
- struct与class的区别
- struct内存对齐
- new/delete与malloc/free的区别
- 内存泄露的情况
- sizeof与strlen对比
- 指针与引用的区别
- 野指针产生与避免
- static关键字:修饰局部变量、全局变量、类中成员变量、类中成员函数
- const关键字:修饰变量、指针、类对象、类中成员函数
- extern关键字:修饰全局变量
- volatile关键字:避免编译器指令优化
类与面向对象
- 面向对象的三大特性:封装、继承、多态
- 类的访问权限:private、protected、public
- 类的构造函数、析构函数、赋值函数、拷贝函数
- 移动构造函数与拷贝构造函数对比
- 深拷贝与浅拷贝的区别
- 空类有哪些函数?空类的大小?
- 多态:动态多态、静态多态
- 虚函数实现动态多态的原理、虚函数与纯虚函数的区别
- 继承时,父类的析构函数是否为虚函数?构造函数能不能为虚函数?为什么?
- 静态多态:重写、重载、模板
新特性
- 四种类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast
- 右值引用
- std::move函数
- 四种智能指针及底层实现:auto_ptr、unique_ptr、shared_ptr、weak_ptr
- shared_ptr中的循环引用怎么解决?(weak_ptr)
模板与标准库
- vector与list比较
- vector迭代器失效的情况
- map与unordered_map对比
- set与unordered_set对比
- STL容器空间配置器