[TOC]
## C++ 关键字
C++关键字总结:https://jerakrs.github.io/summary/2020/12/12/the-summary-of-c++-keywords.html
* explicit:用来修饰构造函数声明,表示显式构造函数。
* extern:可以用来修饰变量或者函数,表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义,可以理解成是对变量和函数的一个声明。
* inline:修饰的函数为内联函数,内联函数在内部工作时将对应的函数替换成执行的代码,以减少频繁调用函数对栈内存重复开辟所带来的消耗。
* mutable:用于类的非静态非 const 数据成员,表示不受到 const 的限制,可以在 const 成员函数中修改该变量。
* static:表示所修饰的变量、成员变量为全局的。
* volatile:表明变量可能会通过某种方式发生改变,所以它会告诉编译器不要去优化该变量的相关操作。
## 运行时类型识别(RTTI)
**RTTI (Run Time Type Identification)** 指的是运行时类型识别。程序能够使用基类的指针或引来检查这些指针或引用所指的对象的实际派生类型。 RTTI提供了两个非常有用的操作符:
* `typeid` 返回指针和引用所指的实际类型,返回类型为 `type_info`。
* `dynamic_cast` 将基类类型的指针或引用安全地转换为其派生类类型的指针或引用。
## 函数重载、重写、重定义
* **函数重载(overloaded function)**:同作用域下,函数名相同,函数参数个数或函数参数类型不同,返回值类型不能作为判定重载的标准。
* **函数重写(overridden function)**:两个函数分别在基类和派生类中,函数必须是虚函数,函数名和参数都相同,但是实现不同。
* **函数重定义(redefined function)**:两个函数分别在基类和派生类中,函数不是虚函数,函数名和参数都相同,但实现不同。这种情况下,派生类的函数实现将会覆盖基类对应的实现。这种实现方式也称隐藏。
- 目录
- 基础知识
- 1、变量和基础类型
- 1.1、内置类型
- 1.2、变量
- 1.3、复合类型
- 1.4、类型修饰符
- 1.5、类型处理
- 1.6、自定义结构
- 1.7、数组
- 2、表达式和语句
- 2.1、运算符
- 2.2、语句
- 3、函数
- 1、语法相关
- 2、资源管理
- 3、面向对象
- 4、模板与泛型编程
- Problem01:判断类中是否包含函数
- Problem02:解析函数的参数类型
- 5、系统库
- Problem01:多线程维护最大值
- Problem02:介绍一下strcpy、strncpy、memcpy、memmove
- Problem03:介绍一下网络编程
- Problem04:select、poll、epoll的区别
- 未整理
- Problem11:实现在main函数前、后执行的函数
- Problem12:可变参函数的实现
- Problem13:全局变量初始化顺序问题
- Problem14:介绍一下隐式转换
- Problem07:实现一个不能被拷贝的类
- Problem08:实现一个只能通过动态、静态分配的类
- 开源项目
- redis
- 第一部分 数据结构与对象
- redis 底层数据结构
- redis 对象
- taskflow
- 数据结构
- Executor
