Effective C++
vbs16
这个作者很懒,什么都没留下…
展开
-
C++笔记 52:写了placement就要写placement delete
Effective C++笔记 Write placement delete if you write placement new 调用匹配的operator delete 掩盖operator new/delete 总结原创 2020-11-20 22:05:22 · 158 阅读 · 0 评论 -
C++笔记 51:编写new和delete时需固守常规
Effective C++笔记 Adhere to convention when writing new and delete size = = 0 arrays内存分配行为 总结原创 2020-11-20 21:54:10 · 88 阅读 · 0 评论 -
C++笔记 50:了解new和delete的合理替换时机
Effective C++笔记 Understand when it makes sense to replace new and delete 定制型operator new 齐位 总结原创 2020-11-20 21:45:33 · 121 阅读 · 0 评论 -
C++笔记 49:了解new-handler的行为
Effective C++笔记 Understand the behavior of the new-handler class专属之new-handlers nothrow形式 总结原创 2020-11-20 21:38:47 · 87 阅读 · 0 评论 -
C++笔记 48:认识template元编程
Effective C++笔记 Be aware of template metaprogramming traits解法就是TMP 循环 总结原创 2020-11-20 21:27:19 · 103 阅读 · 0 评论 -
C++笔记 47:请使用traits classes表现类型信息
Effective C++笔记 Use traits classes for information about types STL迭代器分类 advance函数 Traits 编译期确定代码 总结原创 2020-11-19 21:29:02 · 93 阅读 · 0 评论 -
C++笔记 46:需要类型转换时请为模板定义非成员函数
Effective C++笔记 Define non-member functions inside templates when type conversion are desired 推导T 解决无法链接 考虑inline,令friend函数调用辅助函数 总结原创 2020-11-19 21:17:23 · 131 阅读 · 0 评论 -
C++笔记 45:运用成员函数模板接受所有兼容类型
Effective C++笔记 Use member function templates to accpet “all compatible types” 泛化copy构造函数 对成员函数群进行筛除 支持赋值操作 类的copy构造和copy assignment操作符 总结原创 2020-11-19 21:10:10 · 137 阅读 · 0 评论 -
C++笔记 44:将与参数无关的代码抽离templates
Effective C++笔记 Factor parameter-independent code out of templates 非类型参数(non-type template parameters)膨胀 类型参数(type parameters)膨胀 总结原创 2020-11-18 21:28:21 · 138 阅读 · 0 评论 -
C++笔记 43:学习处理模板化基类内的名称
Effective C++笔记 Know how to access names in templatized base classed 编译器无法知道Company是什么 this-> using声明式 指出被调用函数位于base class内 总结原创 2020-11-17 21:29:00 · 125 阅读 · 0 评论 -
C++笔记 42:了解typename的双重意义
Effective C++笔记 Understand the two meanings of typename class和typename不同 嵌套从属名称导致解析困难 typename例外 总结原创 2020-11-16 23:07:01 · 79 阅读 · 0 评论 -
C++笔记 41:了解隐式接口和编译器多态
Effective C++笔记 Templates and Generic Programming 显示接口 隐式接口 总结原创 2020-11-14 20:33:47 · 180 阅读 · 0 评论 -
C++笔记 40:明智而审慎地使用多重继承
Effective C++笔记 Use multipleinheritance judiciously 钻石型多重继承 虚继承使派生类只有一份虚基类,但是需要派生类初始化虚基类成员 Person 总结原创 2020-11-13 21:59:35 · 110 阅读 · 0 评论 -
C++笔记 39:明智而审慎地使用private继承
Effective C++笔记 Use private inheritance judiciously private继承意味着implemented-in-terms-of(根据某物实现出) 尽可能使用复合(composition),必要时使用private继承 空间最优化 总结原创 2020-11-12 22:24:07 · 130 阅读 · 0 评论 -
C++笔记 38:通过复合塑模出has-a或“根据某物实现出“
Effective C++笔记 Model “has-a” or “is-implemented-in-terms-of” through composition 总结原创 2020-11-11 21:27:01 · 112 阅读 · 0 评论 -
C++笔记 37:绝不重新定义继承而来的缺省参数值
Effective C++笔记 Never redefines a function’s inherited default parameter value 考虑运行期效率 总结原创 2020-11-10 20:54:02 · 80 阅读 · 0 评论 -
C++笔记 36:绝不重新定义继承而来的non-virtual函数
Effective C++笔记 Never redefines an inherited non-virtual function 总结原创 2020-11-09 21:02:48 · 145 阅读 · 0 评论 -
C++笔记 35:考虑virtual函数以外的其他选择
Effective C++笔记 Consider alternatives to virtual functions 1. 借由Non-Virtual Interface手法实现了Template Method模式 2. 借由Function Pointers实现Strategy模式 3. 借由tr1::function完成Strategy 如果创建ecc1警告,未调用原型函数,则(HealthCalFunc)HealthCalculator() 4. 古典的Strategy 总原创 2020-11-07 20:46:52 · 175 阅读 · 1 评论 -
C++笔记 34:区分接口继承和实现继承
Effective C++笔记 Differentiate between inheritance of interface and inheritance of implementation 继承函数接口 继承函数的接口和缺省实现 继承函数的接口及一份强制性实现 总结原创 2020-11-06 21:44:07 · 75 阅读 · 0 评论 -
C++笔记 33:避免遮掩继承而来的名称
Effective C++笔记 Avoid hiding inherited names using声明 转交函数 总结原创 2020-11-05 21:07:28 · 79 阅读 · 0 评论 -
C++笔记 32:确定你的public继承塑摸出is-a关系
Effective C++笔记 Make sure public inheritance models “is-a” 不存在"适用于所有软件"的完美设计 矩形,正方形 施行于base class对象身上的每件事情,也可以施行于derived class对象身上 总结原创 2020-11-04 22:22:47 · 85 阅读 · 0 评论 -
C++笔记 31:将文件间的编译依存关系降至最低
Effective C++笔记 Minimize compilation dependencies between files handle class interface class 降低文件间的编译依存性 总结原创 2020-10-30 22:44:12 · 155 阅读 · 0 评论 -
C++笔记 30:透彻的了解inlining
Effective C++笔记 Understand the ins and outs of inlining inline只是对编译器的一个申请 inline大多数在编译过程中进行inlining template的具现化与inlining无关 virtual函数的调用会使inlining落空 编译器通常不对"通过函数指针而进行的调用"实施inlining inline函数无法随着程序库的升级而升级 调试 总结 ...原创 2020-10-29 22:01:05 · 158 阅读 · 0 评论 -
C++笔记 29:为“异常安全“而努力是值得的
Effective C++笔记 Strive for exception-safe code 解决资源泄露 解决数据败坏 copy and swap 总结原创 2020-10-28 21:55:03 · 112 阅读 · 0 评论 -
C++笔记 28:避免返回handles指向对象内部成分
Effective C++笔记 Avoid returning “handles” to object internals reference 指针 迭代器都是所谓的handle dangling handles(空悬) 总结原创 2020-10-27 21:36:50 · 155 阅读 · 0 评论 -
C++笔记 27:尽量少做转型动作
Effective C++笔记 Minimize casting 转型语法,三种不同的形式 唯一使用旧式转型的时机 任何一个类型转换往往真的令编译器编译出运行期间执行的码 derived classes内的virtual函数代码的第一个动作就先调用base class的对应函数 dynamic_cast 总结 ...原创 2020-10-26 21:41:19 · 73 阅读 · 0 评论 -
C++笔记 26:尽可能延后变量定义式的出现时间
Effective C++笔记 Postpone variable definitions as long as possible 循环 总结原创 2020-10-24 20:18:52 · 91 阅读 · 0 评论 -
C++笔记 25:考虑写出一个不抛异常的swap函数
Effective C++笔记 Consider support for a non-throwing swap 标准库swap算法 pointer to implementation std全特化 class templates 企图偏特化一个function template(std::swap),但C++只允许对class template偏特化, 在function templates身上偏特化是行不通的 using std::swap 重写swap 成员版swap绝不可能抛原创 2020-10-23 21:24:31 · 119 阅读 · 0 评论 -
C++笔记 24:若所有参数皆需类型转换,请为此采用non-member函数
Effective C++笔记 Declare non-member functions when type conversions should applay to all parameters 将operator写成Rational成员函数* operator所需参数为Ration对象,整数2隐式转化为对象* 混合式算数运算 总结原创 2020-10-22 21:14:13 · 137 阅读 · 0 评论 -
C++笔记 23:宁以non-member、non-friend替换member函数
Effective C++笔记 Prefer non-member non-friend functions to member functions 数据尽可能被封装 命名空间 总结原创 2020-10-21 22:33:05 · 128 阅读 · 0 评论 -
C++笔记 22:将成员变量声明为private
Effective C++笔记 Declare data members private 使用函数 提供弹性 总结原创 2020-10-21 22:26:54 · 120 阅读 · 0 评论 -
C++笔记 21:必须返回对象时,别妄想返回其reference
Effective C++笔记 Don’t try to return a reference when you must return an object on-stack on-heap static-local static array 返回一个新对象 总结原创 2020-10-21 22:21:40 · 154 阅读 · 0 评论 -
C++笔记 20:宁以pass-by-reference-to-const替换pass-by-value
Effective C++笔记 Prefer pass-by-reference-to-const to pass-by-value 低效的传递方式 by-reference by-reference方式对象切割(slicing) 选择pass-by-value还是pass-by-reference 总结原创 2020-10-21 22:13:26 · 116 阅读 · 0 评论 -
C++笔记 19:设计class犹如设计type
Effective C++笔记 Treat class design as type design原创 2020-10-21 21:59:35 · 144 阅读 · 0 评论 -
C++笔记 18:让接口容易被正确使用,不易被误用
Effective C++笔记 Make interfaces easy to use correctly and hard to use incorectly 表现日期class 限制类型内什么事可做,什么事不可做 令你的types的行为与内置types一致 提供行为一致的接口 消除cross-DLL problem 总结 ...原创 2020-10-20 21:07:42 · 82 阅读 · 1 评论 -
C++笔记 17:以独立语句将newed对象置入智能指针
Effective C++笔记 Store newed objects in smart pointers in standalone statements 总结:原创 2020-10-16 20:04:38 · 77 阅读 · 0 评论 -
C++笔记 16:成对使用new和delete时要采取相同形式
Effective C++笔记 Use the same from in corresponding uses of new and delete new和delete行为 单一对象还是对象数组 typedef数组类型[] 总结原创 2020-10-14 21:41:12 · 79 阅读 · 0 评论 -
C++笔记 15:在资源管理类中提供对原始资源的访问
Effective C++笔记 Provide access to raw resources in resource-managing classed 显示转换 隐式转换 font类 提供get显示获取 提供隐式转换函数 总结原创 2020-10-13 21:17:38 · 89 阅读 · 0 评论 -
C++笔记 14:在资源管理类中小心coping行为
Effective C++笔记 Think carefully about copying behavior in resource-managing classes QMutextLock 总结原创 2020-10-12 22:26:42 · 142 阅读 · 0 评论 -
C++笔记 13:以对象管理资源
Effective C++笔记 Use objects to manage resources std::auto_tpr auto_ptr:若通过copy构造函数或copy assignment操作符复制它们,它们会变成null,而复制所得的指针将取得资源的唯一拥有权 tr1::shared_ptr std::shared_ptr复制操作 总结: ...原创 2020-10-10 21:17:02 · 69 阅读 · 0 评论