随笔分类 - C/C++
摘要:## 📖 概念速览 ### 上篇回顾 + 本课目标 基础篇你用 `push_back`、`v[i]`、范围 for 玩转了 vector。但这些都是"尾部操作 + 读"。这一课我们深入: - 如何在**中间**插入和删除 - `reserve` 和 `resize` 到底差在哪 - 扩容时背后发生
阅读全文
摘要:## 📖 概念速览 ### 它是什么? 迭代器(Iterator)是一个**广义指针**。回想 C 语言遍历数组: ```c int arr[] = {1, 2, 3, 4}; int* p = arr; // 指针指向第一个元素 while (p != arr + 4) { printf("%d
阅读全文
摘要:## 📖 概念速览 ### 它是什么? `std::vector<T>` 是一个**会自动伸缩的动态数组**。C 语言里你写 `int arr[100]`,大小写死 100,数据多了装不下、少了浪费内存。vector 帮你把"扩容"这摊脏活全包了——只管往里塞,空间不够它幕后自己搞定。 ### 底
阅读全文
摘要:什么是虚函数? 虚函数是C++中实现多态性的一种机制,它允许派生类重写基类的虚函数,从而在运行时根据对象的实际类型调用相应的函数。虚函数通过在函数声明前加上virtual关键字来定义。知道什么是虚函数好像并没什么卵用,要了解虚函数解决了什么问题才有意义! 虚函数解决了什么问题? 假设你正在设计一个图
阅读全文
摘要:1. 多继承的概念 定义:一个派生类,同时继承多个基类 语法格式: class 派生类名 : 访问修饰符 基类1, 访问修饰符 基类2, ... { // 派生类成员 }; 2. 多继承时构造/析构顺序 规则: 构造顺序:从左到右,先构造基类,再构造派生类 析构顺序:从右到左,先析构派生类,再析构基
阅读全文
摘要:C++中访问控制权限有三种:public, private, protected。它们的作用分为两类: 自身成员访问权限控制 用法:限定关键字:成员声明 基类继承成员访问权限控制 用法:限定关键字 基类 自身成员访问权限控制 在类/结构体或者联合体的成员声明序列中,它的主要作用是定义后续成员的可访问
阅读全文
摘要:1. 成员初始化的三种主要写法 以非静态成员为例,常见三种方式: // 方式 1:声明处默认初始化 class A { public: A(); // 可以有多个构造函数 private: int a = 0; int b{1}; }; // 方式 2:构造函数初始化列表 class B { pub
阅读全文
摘要:GNU C和ANSI C的概念 ANSI C指的是American National Standards Institute(美国国家标准协会)C。这个标准的演进过程如下: 1989 - ANSI C (C89/C90) ↓ 1999 - ISO C (C99) ↓ 2011 - ISO C (C1
阅读全文
摘要:普通指针存在的问题 在C/C++开发时,指针导致的问题数不胜数。通常有如下几类问题: 内存泄漏:在程序运行期间,通过malloc系列函数或者C++的new申请了内存,但是忘记free或delete了。一旦这种情况反复出现,随着时间累积最终耗尽系统内存,引发系统异常。linux内核会监测到这种情况,主
阅读全文
摘要:建造者模式,也叫做生成器模式,是一种对象创建型模式。建造者模式用于创建具有多个部件的复合对象,并隐藏了复合对象的创建过程,不同的部件建造者(Builder生成器)有不同的建造方法。通过建造者模式实现了对象的构建和对象的表示的分离,也就是说,通过同样的构建过程(建造逻辑)可以创建出不同的表示(使用不同
阅读全文
摘要:动机 在之前介绍工厂模式时,我们以播放器为例,该播放器支持多种多媒体处理库,如 ffmpeg 和 gstreamer。实际上,这两个多媒体库不仅支持视频播放,还支持音频播放。那么,我们是否需要再用工厂模式重新设计一套音频播放器呢?答案是否定的。当产品类存在两个维度的划分,播放器这个例子中即 库类类型
阅读全文
摘要:简单工厂模式 动机 在实际开发中,我曾遇到这样的需求:实现一个播放器,要求支持播放列表设置、播放、停止、暂停、跳转等操作。正常情况下直接实现播放器类即可,但需求要求支持不同多媒体库(如 FFmpeg 或 GStreamer)。若分别实现两种播放器类,业务逻辑中每次操作播放器时都需判断类型;若扩展到1
阅读全文
摘要:正常情况下一个类定义后,可以创建很多实例。但是有时候我们有一种这样的需求:希望程序中只有一个这样的实例,以避免资源访问的冲突、干扰等。例如,我们知道,串口这种设备通常是独占的,如果设计一个类,使用指定串口通讯。为了避免使用冲突,在不使用单例模式时,我们必须小心谨慎的确保只有一个这样的实例存在。但是人
阅读全文

浙公网安备 33010602011771号