"空空如也"
File.RAII, 智能指针, 新/删除. memory.md.
功能概述
File.RAII, 智能指针, 新/删除. memory.md.是一项面向实际任务的技能,主要用于Raw指针, 引用, 无效者. pointers.md. 规则 3/5/0, 继承, 虚拟类.md. containers, extrators, 算法.stl.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
- 实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
使用与执行
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
结果检查与注意事项
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
速查表
| 主题 | 文件 |
|---|---|
| RAII、智能指针、new/delete | memory.md |
| 裸指针、引用、nullptr | pointers.md |
| 三法则/五法则/零法则、继承、virtual | classes.md |
| 容器、迭代器、算法 | stl.md |
| 模板、SFINAE、concepts | templates.md |
| 线程、mutex、原子操作 | concurrency.md |
| C++11/14/17/20、移动语义 | modern.md |
| 未定义行为陷阱 | ub.md |
关键规则
- 裸
new未配对delete会导致内存泄漏 — 应使用std::unique_ptr或std::make_unique - 返回局部对象的引用 — 属于未定义行为,该对象在函数返回时即被销毁
- C 字符串使用
==比较的是指针地址 — 应使用std::string或strcmp() - 有符号整数溢出是未定义行为(UB) — 不会像无符号整数那样回绕
- 基类中若含虚函数,则析构函数必须声明为 virtual — 否则派生类析构函数将被跳过
std::move并不执行移动操作 — 它仅将参数转换为右值引用,从而启用移动语义- 被移动过的对象处于有效但未指定状态 — 在重新赋值前不应再使用
- 对非原子类型进行数据竞争是未定义行为 — 应使用
std::mutex或std::atomic vector并非真正的标准容器 — 其operator[]返回代理对象,如需布尔值容器建议改用dequemap[key]在键不存在时会插入默认构造值 — 若仅需查询存在性,请使用find()或contains()- 花括号初始化
{}禁止窄化转换 — 如int x{3.5}编译报错,而int x(3.5)会截断 push_back可能导致迭代器失效 —vector在扩容时可能重新分配内存,使原有迭代器失效string_view不拥有底层数据 — 其所引用的字符串生命周期必须长于string_view对象本身
热门AI工具
相关专题
本专题围绕 C++ 在游戏引擎开发中的核心技术展开,讲解渲染管线设计、内存管理优化、组件化架构以及实时渲染性能提升方法。通过实际引擎模块分析,帮助开发者掌握高性能游戏系统设计能力。
266
2026.06.22
讲解 C++ 项目的测试与质量保障工具链,涵盖 Google Test(gtest)的安装集成、ASSERT/EXPECT 断言宏、Test Fixture 测试夹具与参数化测试、Google Mock(gmock)的 Mock 类创建与 EXPECT_CALL 行为验证、Catch2 轻量测试框架对比、CTest 与 CMake 集成运行测试、gcov / lcov 代码覆盖率报告生成、Clang-Tidy 静态分析与自动修复、cpp
580
2026.05.15
讲解 C++ 项目实现跨平台兼容的核心技术与工程方法,涵盖预处理宏条件编译(_WIN32/linux/APPLE)、平台抽象层(PAL)封装文件系统/网络/线程差异、CMake 跨平台构建与工具链文件(Toolchain File)配置、交叉编译(Cross Compilation)环境搭建、字符编码(UTF-8/宽字符)跨平台处理、动态库/静态库的平台差异(dll/so/dylib)、CI/CD 多平台矩阵构建(GitHub Acti
123
2026.05.12
以 C++ 为实现语言,系统讲解核心数据结构与算法,涵盖链表(单链表/双链表/环检测)、栈与队列(单调栈/优先队列)、二叉树(遍历/BST/AVL/红黑树)、哈希表(开地址法/链地址法)、图(邻接表/BFS/DFS/Dijkstra/拓扑排序)、常见排序算法(快排/归并/堆排/计数排序)的实现与复杂度分析,同时分享 LeetCode 刷题技巧、竞赛编程常用模板(二分/前缀和/滑动窗口/动态规划),帮助开发者夯实算法基础。
272
2026.05.09
聚焦 C++20 引入的协程特性,讲解协程的底层模型(Promise Type / Coroutine Handle / Awaiter 三要素)、co_await 挂起与恢复机制、co_yield 生成器模式、co_return 协程返回值、自定义 Task / Generator 协程类型的设计与实现、协程与 io_uring / ASIO 异步 I/O 的结合、协程调度器的设计思路、与传统回调/Future 模式的对比优势,帮助开
134
2026.05.08
讲解经典设计模式在 C++ 中的高质量实现,涵盖创建型模式(单例的线程安全实现/工厂方法/抽象工厂/Builder)、结构型模式(适配器/装饰器/代理/CRTP 静态多态)、行为型模式(策略/观察者/命令/状态/访问者),结合智能指针、Lambda、模板等现代特性给出最优写法,同时讲解 SOLID 设计原则在 C++ 工程中的落地实践。
130
2026.05.08
横跨 C++、Go、Python、Java 四门语言,系统讲解单元测试与测试驱动开发(TDD)方法论,涵盖 Google Test(C++)的断言与测试夹具、Go testing 的表驱动测试与 testify 断言库、pytest(Python)的参数化测试与 fixture 机制、JUnit 5(Java)的注解体系与 Mockito 打桩框架,同时讲解 TDD 红-绿-重构循环、测试金字塔分层策略、Mock/Stub/Fake 测
212
2026.05.07
专题讲解了 C++ 中文件操作与数据序列化的完整方案,涵盖 fstream / ifstream / ofstream 文本与二进制文件读写、文件指针定位(seekg/seekp/tellg)、字符串流 stringstream 的格式转换应用、自定义结构体的二进制序列化与反序列化、nlohmann/json 库的 JSON 读写、RapidXML / TinyXML2 的 XML 解析、Protobuf / FlatBuffers /
129
2026.05.07
深入讲解 C++ Lambda 表达式与函数式编程范式,涵盖 Lambda 基础语法与返回值推导、值捕获与引用捕获的区别与陷阱、初始化捕获(C++14 广义捕获)、泛型 Lambda(auto 参数)、mutable 关键字修改捕获变量、std::function 类型擦除与函数包装、std::bind 参数绑定(及其被 Lambda 替代的趋势)、Lambda 在 STL 算法(sort/transform/for_each/remo
329
2026.05.06
热门下载
相关下载
精品课程
共0课时 | 0人学习
共0课时 | 0人学习
共0课时 | 0人学习
最新文章