C++

「C++」继承

### 一、基类的实现 &emsp;作为基类的类,必须已经定义而非仅仅声明。 <br> #### 1. 基类成员的访问控制 &emsp;派生类继承定义在基类中的所有成员,但是派生类的成员函数不一定有权访问从基类继承而来的成员。与其他使用基类的代码一样,派生类能访问基类的公有成员,不能访………


「C++」类和对象

&emsp;类是 OOP 的基础。<br><p></p> &emsp;OOP 的三大核心思想为:封装、继承、多态。 <br> ### 一、类实现细节 #### 1. 类作用域与成员函数 &emsp;只有类全部完成后类才算被定义,故一个类的成员类型不能是自己(编译器不知道分配多大的内存);而一个类………


「C++」函数

### 一、局部对象 #### 1. 自动对象 &emsp;对于作用域与生命周期都仅限于局部块的对象称为自动对象。<br><p></p> &emsp;对于自动变量,若未初始值,则将执行默认初始化,这意味着: 1. 对于内置类型而言,其默认初始化将产生未定义的值; 2. 对于类类型而言,调用对应类………


「C++」引用与指针

### 一、引用 &emsp;引用是对象的别名。**定义一个引用后,对其进行的所有操作都是在与之绑定的对象上进行的**。<br><p></p> &emsp;由于无法令引用绑定到另外一个对象,因此**引用必须初始化**。<br><p></p> &emsp;此外,由于引用本身不是一个对象,故不能定义引………


「C++」类型转换

&emsp;C++ 语言中某些类型之间会有关联。若两种类型有关联,那么当程序需要其中一种类型的运算对象时,可用另一种关联类型的对象来替代。但需记住,编译器只会自动执行一步隐式类型转换。<br><p></p> &emsp;接下来介绍隐式类型转换中的算术转换与显式类型转换。 <br> ### 一、算………


「C++」动态内存管理

&emsp;一般在程序中用到的内存分为三种:静态内存、栈内存与堆内存。<br><p></p> &emsp;分配在静态内存或栈内存中的对象由编译器自动创建与销毁。其中,静态内存用来保存: 1. 全局变量 2. `static`对象(全局与局部) 3. 类`static`数据成员 &emsp;栈………


「C++」拷贝控制

在定义一个类时,可以指定类的拷贝、移动、赋值或销毁时的动作,这些操作由5种成员函数来控制: 1. **拷贝构造函数** 2. **拷贝赋值运算符** 3. **移动构造函数** 4. **移动赋值运算符** 5. **析构函数** <br> &emsp;其中,拷贝和移动*构造函数* 定义………


「C++」Lambda表达式

&emsp;泛型算法可以接收谓词(一个函数)以支持定制算法,但我们传递给算法的谓词必须严格满足算法对谓词参数的要求。为了更灵活地使用算法,可以使用 lambda 表达式。 <br><br> ### 一、介绍Lambda &emsp;一个 lambda 表达式表示一个可调用的代码单元,可以将其理解………