effective c++

凡人叶枫14 天前
java·开发语言·c++·effective c++
Effective C++ 条款41:了解隐式接口和编译期多态原文:Understand implicit interfaces and compile-time polymorphism.
凡人叶枫15 天前
java·数据库·c++·嵌入式开发·effective c++
Effective C++ 条款40:明智而审慎地使用多重继承本篇为《Effective C++:改善程序与设计的 55 个具体做法》读书笔记系列第 40 篇。多重继承(Multiple Inheritance, MI)是 C++ 中最具争议的特性之一。它提供了强大的表达能力,允许一个类从多个基类继承特性。然而,这种强大能力也带来了显著的复杂性:名称歧义、菱形继承问题、virtual 继承的性能开销等。Scott Meyers 在条款 40 中提醒我们:多重继承比单一继承复杂,可能导致新的歧义性,以及对 virtual 继承的需要,但确有正当用途。本文将深入探讨多重
凡人叶枫16 天前
linux·开发语言·c++·php·嵌入式开发·effective c++
Effective C++ 条款31:将文件间的编译依存关系降至最低在大型 C++ 项目中,你是否经历过"修改一个头文件,引发全工程重新编译"的痛苦? 本条款将教你如何打破这种编译依赖的枷锁,让你的构建速度飞起来!
凡人叶枫16 天前
linux·开发语言·c++·嵌入式开发·effective c++
Effective C++ 条款30:透彻了解 inlining 的里里外外inline 函数背后的整体观念是,将"对此函数的每一个调用"都以函数本体替换之。这样做可能增加目标码的大小。在一台内存有限的机器上,过度热衷 inlining 会造成程序体积太大,即使拥有虚内存,inline 造成的代码膨胀也会导致额外的换页行为,降低指令高速缓存装置的击中率,以及伴随这些而来的效率损失。
凡人叶枫17 天前
linux·开发语言·c++·effective c++
Effective C++ 条款26:尽可能延后变量定义式的出现时间只要定义了一个变量而其类型带有一个构造函数或析构函数,那么当程序的控制流到达这个变量定义式时,你便得承受构造成本;当这个变量离开其作用域时,你便得承受析构成本。
凡人叶枫19 天前
开发语言·c++·effective c++
Effective C++ 条款16:成对使用 new 和 delete 时要采取相同形式🎯 核心观点:如果你在 new 表达式中使用了 [],必须在对应的 delete 表达式中也使用 [];如果在 new 中未使用 [],delete 中也一定不要使用 []。
凡人叶枫21 天前
java·linux·服务器·开发语言·c++·effective c++
Effective C++ 条款10:令 operator= 返回一个 reference to *this在 C++ 中,赋值运算符的重载是一个看似简单却暗藏玄机的主题。你有没有想过,为什么 x = y = z = 15 这样的连锁赋值能够正常工作?答案就藏在 operator= 的返回值中。
凡人叶枫22 天前
java·linux·开发语言·c++·effective c++·编程范式
Effective C++ 条款05:了解 C++ 默默编写并调用哪些函数编译器可以暗自为 class 创建 default 构造函数、copy 构造函数、copy assignment 操作符和析构函数。
凡人叶枫23 天前
linux·开发语言·c++·effective c++·编程范式·语言联邦
Effective C++ 条款01:视 C++ 为一个语言联邦本篇为《Effective C++:改善程序与设计的 55 个具体做法》读书笔记系列第一篇。很多初学者在刚接触 C++ 时,常常会有这样的困惑:
华科大胡子3 个月前
effective c++·值传递·常量引用传递·对象切割·构造和析构
条款20:宁以常量引用传递替换值传递目录条款20:宁以常量引用传递替换值传递(Prefer pass-by-reference-to-const to pass-by-value)
华科大胡子3 个月前
const·effective c++·const成员函数·const修饰指针·stl迭代器
条款03:尽可能使用const目录条款03:尽可能使用const(Use const whenever possible)const概览
Once_day5 个月前
c语言·c++·effective c++
C++之《Effective C++》读书总结(4)Author: Once Day Date: 2026年2月6日一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦…
Once_day5 个月前
开发语言·c++·effective c++
C++之《Effective C++》读书总结(2)Author: Once Day Date: 2026年1月28日一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦…
Once_day5 个月前
c语言·c++·effective c++
C++之《Effective C++》读书总结(1)Author: Once Day Date: 2026年1月5日一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦…
杨筱毅8 个月前
c++·effective c++
【穿越Effective C++】条款17:以独立语句将newed对象置入智能指针——异常安全的智能指针初始化这个条款揭示了C++异常安全中一个微妙但危险的陷阱:在复合语句中创建智能指针可能导致资源泄漏。理解这一原则是构建异常安全代码的关键。
杨筱毅8 个月前
开发语言·c++·effective c++
【穿越Effective C++】条款13:以对象管理资源——RAII原则的基石这个条款揭示了C++资源管理的核心理念:通过对象的生命周期自动管理资源,避免手动资源管理带来的泄漏和错误。这是C++最重要的设计原则之一,也是现代C++编程的基石。
杨筱毅8 个月前
c++·effective c++
【穿越Effective C++】条款8:别让异常逃离析构函数——C++异常安全的关键支柱这个条款揭示了C++异常处理中最重要的规则之一:析构函数绝不能抛出异常。这是构建异常安全代码的基石,理解这一点对于开发健壮的C++系统至关重要。
杨筱毅8 个月前
c++·effective c++·1024程序员节
【穿越Effective C++】条款5:了解C++默默编写并调用哪些函数——编译器自动生成的秘密在C++中,即使你定义一个空类,编译器也会在背后为你生成一系列函数。理解这些"默默生成"的函数是掌握C++对象模型的关键,也是避免潜在陷阱的基础。
哎呦,帅小伙哦1 年前
c++·effective c++
Effective C++ 规则51:编写 new 和 delete 时需固守常规在 C++ 中,如果你需要为类自定义 new 和 delete,必须遵循一些约定和规则,以确保内存管理的一致性、可维护性和安全性。当我们使用 new 和 delete 操作时,C++ 编译器会:
哎呦,帅小伙哦1 年前
c++·effective c++
Effective C++ 规则50:了解 new 和 delete 的合理替换时机在 C++ 中,new 和 delete 是动态分配内存的核心操作符。然而,直接使用它们有时会增加程序的复杂性,甚至导致内存泄漏和其他问题。因此,了解何时替换 new 和 delete 并选择更适合的内存管理策略,是编写高效、健壮 C++ 程序的关键。直接使用 new 和 delete 存在以下潜在问题: