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

浙公网安备 33010602011771号