C++
文章平均质量分 77
努力的小钟
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++全局变量初始化流程详解
全局变量(包括static全局变量)的内存分配和初始化工作,是在main函数开始执行之前,由编译器、链接器和运行时库协同合作自动完成的。预处理 (Preprocessing)处理内容: 处理以**#开头的预编译指令,如#include**(头文件展开)、#define(宏替换)、#ifdef(条件编译)等。输出: 一个纯粹的**.i或.ii**文本文件,不含任何预编译指令。编译 (Compilation)处理内容: 将预处理后的源代码进行词法分析、语法分析、语义分析、优化,最终。原创 2025-09-08 00:06:11 · 953 阅读 · 0 评论 -
C++函数参数传入指针与引用区别
在C++中,将指针或引用作为函数参数传递时,主要区别体现在语法、空值合法性、可修改性及安全性上。特性指针引用语法需取地址 (&) 和解引用 (*)直接使用变量名空值可为 nullptr必须绑定有效对象可修改目标可以重新指向其他地址绑定后不可更改安全性需手动检查空指针天然避免空值问题典型用途动态内存、可选参数必须有效参数、运算符重载根据需求选择:需空值或重定向时用指针;需安全简洁时用引用。原创 2025-03-02 03:12:51 · 378 阅读 · 0 评论 -
垃圾回收算法
内存碎片化,需暂停程序运行(Stop-the-World)。:按对象存活时间分代(年轻代、老年代),优先回收年轻代。:标记后移动存活对象至内存一端,整理后释放剩余空间。:每个对象维护引用计数,当计数归零时释放内存。:从根对象出发标记所有可达对象,清除未标记的。:无法处理循环引用(如A引用B,B引用A)。:对象移动需更新所有引用,实现复杂。:减少扫描范围,提升效率。原创 2025-02-24 04:21:04 · 465 阅读 · 0 评论 -
C++-智能指针
在C++中,智能指针是用于自动化内存管理的关键工具,能有效防止内存泄漏和悬空指针等问题。适用场景:管理非new分配的资源(如malloc、文件句柄)。示例// 使用lambda自定义删除器智能指针通过RAII机制简化资源管理,提升代码健壮性。unique_ptr:独占资源,高效无开销。shared_ptr + weak_ptr:共享资源,处理复杂生命周期。自定义删除器:适配特殊资源管理需求。原创 2025-02-13 14:35:05 · 420 阅读 · 0 评论 -
C++函数指针及其用途详解
在C++中,函数指针是一种指向函数而非数据的指针,允许通过指针间接调用函数。回调机制:将函数作为参数传递(如事件处理)。策略模式:运行时动态选择算法。函数表/跳转表:通过索引或键快速调用不同函数。兼容C代码:与C语言库交互时传递函数。STL算法:为泛型算法提供自定义行为(如排序规则)。插件系统:动态加载并调用函数。原创 2025-03-02 02:48:34 · 576 阅读 · 0 评论 -
C++重载与重写的区别详解
在C++中,重写(Overriding)和重载(Overloading)是两个不同的概念,分别用于实现不同类型的多态性。以下是它们的核心区别和用法:+重载:通过参数差异提供同一函数名的多种实现,增强代码灵活性。重写:通过虚函数机制实现运行时多态,是面向对象的核心特性之一。理解二者的区别,能帮助你更好地设计类的层次结构和接口。原创 2025-03-02 02:11:32 · 1196 阅读 · 0 评论 -
C++虚函数表机制详解
在C++中,虚函数表(vtable)是实现动态多态的核心机制。核心机制:虚函数表通过存储虚函数地址和vptr实现动态绑定。多态实现:允许基类指针调用派生类函数。编译器依赖:具体实现(如vptr位置、vtable结构)因编译器而异。理解虚函数表有助于深入掌握C++多态原理及对象内存模型,但对实际开发而言,应遵循面向对象设计原则,而非直接操作虚函数表。原创 2025-03-02 00:53:56 · 1072 阅读 · 0 评论 -
C++动态与静态转换区别详解
在 C++ 中,和是两种不同的类型转换操作符,主要区别体现在类型检查的时机安全性和适用场景上。特性类型检查时机运行时编译时安全性高(失败返回 nullptr 或抛异常)低(依赖开发者保证)性能有运行时开销(RTTI)无开销适用类型多态类型(需虚函数)任意类型(包括非多态)典型用途向下转型、交叉转型基本类型转换、显式向上/向下转型优先选择 static_cast,除非需要处理多态类型的不确定转换(此时用。原创 2025-03-01 23:52:39 · 620 阅读 · 0 评论 -
C++中const关键字的作用详解
C++ 中的 const 关键字用于定义“常量性”,即标识某个实体不可被修改。它的作用广泛,可以增强代码的安全性、可读性和优化潜力。声明变量为常量,初始化后不可修改。// 错误!不可修改const安全性:防止意外修改数据清晰性:明确代码意图,如参数不可变、函数不修改对象状态等。优化:编译器可能利用const进行优化(如将常量放入只读内存合理使用const是编写健壮、可维护 C++ 代码的关键习惯。原创 2025-03-01 23:22:50 · 428 阅读 · 0 评论 -
C++右值
在C++中引入右值(rvalue)的概念主要是为了更好地优化资源管理、提高性能以及支持移动语义(move semantics)。右值是的概念C++11标准引入的重要特性之一,它与左值(lvalue)一起构成了C++中值类别(value category)的基础。以下详细解释引入右值概念的原因及其带来的好处在C++中,右值(rvalue)是指那些临时、短暂存在且没有持久内存地址的表达式。临时性:右值通常是临时生成的值,如字面量(如5、“hello”)、算术表达式结果(如a + b)或函数返回的临时对象。原创 2025-02-23 18:37:16 · 1024 阅读 · 0 评论
分享