首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
穿越Effective C++
沐怡旸
创建于2025-10-20
订阅专栏
掌握55条准则,编写高质量C++程序
等 4 人订阅
共23篇文章
创建于2025-10-20
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
【穿越Effective C++】条款22:将成员变量声明为private——封装的边界与设计的自由
这个条款揭示了C++类设计的核心封装原则:成员变量应该声明为private,这不仅是技术选择,更是软件设计哲学的体现。通过严格控制数据访问,我们获得了实现灵活性、接口稳定性和维护便利性
【穿越Effective C++】条款21:必须返回对象时,别妄想返回其reference——对象返回的语义与效率平衡
这个条款揭示了C++函数返回语义的核心原则:当函数必须返回新对象时,应该直接返回值而非引用。试图返回局部对象的引用会导致悬空引用,而返回其他生命周期受控对象的引用则会带来接口复杂性和潜在错误。
【穿越Effective C++】条款20:宁以pass-by-reference-to-const替换pass-by-value——参数传递的效率与语义
这个条款揭示了C++函数参数传递的核心优化策略:通过const引用传递可以避免不必要的对象拷贝,同时保持语义的正确性。这是构建高性能C++系统的关键技巧,需要在效率、安全性和表达力之间找到平衡
【穿越Effective C++】条款19:设计class犹如设计type——用户定义类型的艺术与科学
这个条款揭示了C++面向对象设计的核心理念:定义新class就是定义新type。优秀的class设计应该让用户定义类型与内置类型无缝协作,这要求我们在设计时考虑类型系统的完整性、一致性和直观性
【穿越Effective C++】条款18:让接口容易被正确使用,不易被误用——API设计的艺术与科学
这个条款揭示了优秀软件设计的核心哲学:优秀的接口应该引导用户走向正确用法,同时让错误用法在编译期或运行期难以发生。这是构建可维护、可扩展软件系统的基石。
【穿越Effective C++】条款17:以独立语句将newed对象置入智能指针——异常安全的智能指针初始化
这个条款揭示了C++异常安全中一个微妙但危险的陷阱:在复合语句中创建智能指针可能导致资源泄漏。理解这一原则是构建异常安全代码的关键
【穿越Effective C++】条款16:成对使用new和delete时要采用相同形式——内存管理的精确匹配原则
这个条款揭示了C++动态内存管理中最基本但常被忽视的规则:new/delete形式必须严格匹配。理解这一原则是避免内存泄漏和未定义行为的关键。
【穿越Effective C++】条款15:在资源管理类中提供对原始资源的访问——封装与兼容性的平衡艺术
这个条款揭示了RAII设计中的一个关键权衡:如何在保持资源安全封装的同时,提供与现有API的兼容性。正确的原始资源访问设计是构建实用资源管理类的关键
【穿越Effective C++】条款14:在资源管理类中小心copying行为——RAII类的拷贝语义设计
这个条款揭示了RAII类设计中一个关键但常被忽视的问题:拷贝行为的选择直接影响资源管理的正确性和效率。正确的拷贝语义设计是构建健壮资源管理类的核心
【穿越Effective C++】条款13:以对象管理资源——RAII原则的基石
这个条款揭示了C++资源管理的核心理念:通过对象的生命周期自动管理资源,避免手动资源管理带来的泄漏和错误。这是C++最重要的设计原则之一,也是现代C++编程的基石。
【穿越Effective C++】条款12:复制对象时勿忘其每一个成分——完整对象拷贝的艺术
这个条款揭示了C++拷贝控制中一个常见但危险的陷阱:用户定义的拷贝操作可能遗漏某些成员变量,导致对象状态不完整。这是构建正确拷贝语义的关键原则。 思维导图:完整对象拷贝的完整体系 深入解析:拷贝遗漏的
【穿越Effective C++】条款11:在operator=中处理"自我赋值"——资源管理的关键安全网
将自我赋值处理视为C++资源管理类的"基本卫生"。培养"自我赋值思维"——在实现每个赋值操作符时都问自己:"如果对象给自己赋值会发生什么?如果赋值过程中抛出异常对象会处于什么状态?" 这种防御性编程
《穿越Effective C++》条款10:令operator=返回一个reference to *this——赋值操作符的约定俗成
将赋值操作符返回引用视为C++中的"物理定律"。培养"赋值思维"——在实现每个赋值操作符时都问自己:"这个操作符是否支持链式使用?行为是否与内置类型一致?" 这种一致的思维方式是编写专业级C++代码的
条款9:绝不在构造和析构过程中调用virtual函数——C++对象构造顺序的陷阱
将构造和析构视为对象的"脆弱期"。培养"构造安全思维"——在编写每个构造函数时都问自己:“我在这里调用的函数是否依赖于对象的多态行为?” 这种严谨的态度是构建健壮面向对象系统的关键
【穿越Effective C++】条款8:别让异常逃离析构函数——C++异常安全的关键支柱
这个条款揭示了C++异常处理中最重要的规则之一:析构函数绝不能抛出异常。这是构建异常安全代码的基石,理解这一点对于开发健壮的C++系统至关重要
【穿越Effective C++】条款7:为多态基类声明virtual析构函数——C++多态资源管理的基石
这个条款揭示了C++多态体系中最重要的规则之一:通过基类指针删除派生类对象时,如果基类没有虚析构函数,将导致资源泄漏和未定义行为。这是理解C++对象生命周期和多态设计的核心。
【穿越Effective C++】Scott Meyers的《Effective C++》逻辑框架概要汇总--各条款是什么?为什么?怎么做?
这个总结涵盖了《Effective C++》的核心思想,每一条都是C++程序员在实践中需要时刻铭记的准则。掌握它们,你将能写出更安全、更高效、更易维护的C++代码
【穿越Effective C++】条款6:若不想使用编译期自动生成的函数,就该明确拒绝——主动控制对象行为
在C++中,明确的拒绝比沉默的接受更有价值。 条款6教会我们的不仅是一种技术,更是一种设计哲学——通过编译时约束来表达和强制执行设计意图
【穿越Effective C++】条款5:了解C++默默编写并调用哪些函数——编译器自动生成的秘密
将编译器生成函数视为一种设计工具而非实现细节。在编写每个类时,都应该有意识地思考:“我需要编译器生成哪些函数?我应该显式控制哪些函数?” 这种主动思考的习惯是成为C++专家的关键标志
【穿越Effective C++】条款4:确定对象使用前已先被初始化——C++资源管理的基石
在C++中,"未初始化"是无数bug的根源。这个条款不仅仅是关于语法,更是关于资源管理、对象生命周期和软件可靠性的核心哲学。理解初始化规则是成为C++专家的必经之路。
下一页