摘要:
智能指针核心背景与概念 原始指针的痛点 C++ 中使用原始指针(raw pointer)管理动态资源(堆内存、文件描述符、互斥锁、数据库连接等)时,必须手动调用释放逻辑(如delete、close等)。但以下场景会导致资源泄漏: 函数提前return,跳过释放语句; 程序抛出异常,释放语句未执行; 阅读全文
智能指针核心背景与概念 原始指针的痛点 C++ 中使用原始指针(raw pointer)管理动态资源(堆内存、文件描述符、互斥锁、数据库连接等)时,必须手动调用释放逻辑(如delete、close等)。但以下场景会导致资源泄漏: 函数提前return,跳过释放语句; 程序抛出异常,释放语句未执行; 阅读全文
posted @ 2025-12-12 21:24
YouEmbedded
阅读(14)
评论(0)
推荐(0)

C++ 模板(泛型编程) C++ 模板是实现泛型编程的核心机制,通过将数据类型参数化,让一段代码适配多种数据类型,避免重复编写同逻辑不同类型的代码,大幅提升代码复用性。 函数模板 核心概念 目的:将函数的参数类型、返回值类型 “参数化”,让同一个函数逻辑处理不同数据类型(如加法函数同时支持int、d
String类的实现与功能 核心特性 设计目标:解决C风格字符串的内存管理问题,提供面向对象的字符串操作。 底层实现:基于basic_string<char>模板类。 实现详解 #include <cstring> #include <stdexcept> #include <algorithm>
函数绑定机制 函数绑定是将函数调用与具体实现建立关联的过程,分为静态绑定和动态绑定两种核心方式,是实现多态的基础。 静态绑定(早绑定) 定义:程序编译阶段就完成函数地址的绑定,编译器根据调用时的参数类型、个数等直接确定要执行的函数。 特点: 编译期确定调用目标,运行时无额外开销; 核心实现方式为函数
继承的核心概念 继承的核心是基于已有类(基类)创建新类(派生类),实现代码复用和层次化的类结构设计,让派生类既能复用基类的属性和方法,又能扩展自身特有的功能,体现现实世界中事物的 “一般 - 特殊” 关系(如 “哺乳动物 - 猫 / 狗”“交通工具 - 汽车 / 自行车”)。 基类(父类):定义事物
常对象与常对象成员 常对象 定义 const 修饰的类对象称为常对象,核心是对象的所有数据成员具备只读属性,且必须在定义时完成初始化。有两种等价的定义格式: const 类名 对象名(初始化参数); // 标准格式 类名 const 对象名(初始化参数); // 等价格式 核心特性 必须初始化:定义
静态成员 静态成员是属于类本身而非对象实例的成员,用于实现类级别的数据共享与操作,存储在全局 / 静态存储区,生命周期与程序一致。 静态数据成员 声明与定义 class MyClass { public: static int count; // 类内声明:静态数据成员,归属类而非对象 }; int
前期准备 确认交叉编译工具链 确保 ARM 交叉编译工具链已安装并配置生效(以 arm-none-linux-gnueabi-gcc 或 arm-linux-gcc 为例): # 检查工具链是否可用 arm-linux-gcc -v # 或 arm-none-linux-gnueabi-gcc -v
构造与析构基础概念 核心定义 构造函数:对象被创建时自动调用的特殊成员函数,唯一作用是初始化对象的成员属性,确保对象创建后处于合法可用状态。 析构函数:对象被销毁前自动调用的特殊成员函数,用于释放对象占用的动态内存、文件句柄等资源,避免资源泄漏。 编译器行为:若用户未自定义构造 / 析构函数,编译器
面向对象核心概念 面向对象(OOP)vs 面向过程(POP) 面向对象:把问题拆成对象(比如 “学生”“课程”“老师”),通过对象的属性(特征)和行为(方法)交互解决问题。核心思想是抽象、封装、继承、多态: 抽象:提取事物的共性(比如所有 “学生” 都有姓名、学号); 封装:把数据和操作打包,隐藏内
浙公网安备 33010602011771号