![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
《Effective C++》
文章平均质量分 95
《Effective C++》读书笔记
coding-hwz
生前何必久睡
展开
-
《Effictive C++》学习笔记 — 定制 new 和 delete
《Effictive C++》学习笔记 — 定制 new 和 delete条款49 — 了解 new_handler 的行为1、全局new_handler2、处理特定类的new_handler3、使用模板基类实现定制new_handler4、nothrow new条款50 — 了解 new 和 delete 的合理替换时机1、替换 new 和 delete 的常用理由2、定制 new 中的对齐问题除非特别说明,本文中讨论的关于 new 的功能同样适用于 new[]条款49 — 了解 new_handle原创 2021-06-06 12:36:38 · 189 阅读 · 1 评论 -
《Effictive C++》学习笔记 —模板与泛型编程
《Effictive C++》学习笔记 —模板与泛型编程条款41 — 了解隐式接口和编译期多态1、隐式接口和编译期多态2、有效表达式条款42 — 了解typename的双重意义1、从属名称和非从属名称2、非从属名称3、嵌套从属名称条款41 — 了解隐式接口和编译期多态1、隐式接口和编译期多态这两个概念听起来高大上,实际上我们早就在接触它们了。将它们与另外一组概念对比起来很好记:显式接口指的是出现在类定义中的类方法定义。这类接口显式地规定了类方法的参数及返回值等信息。当它们被声明为虚方法时,它们所表现原创 2021-06-03 16:36:45 · 117 阅读 · 0 评论 -
《Effictive C++》学习笔记 — 继承与面向对象设计
《Effictive C++》学习笔记 — 继承与面向对象设计条款32 — 确定你的public继承所实现的为is-a关系1、里氏替换原则2、错误的公有继承 — 例13、解决方案 — 例1(1)改变类关系(2)错误提示4、错误的公有继承 — 例2条款32 — 确定你的public继承所实现的为is-a关系1、里氏替换原则这个条款和里氏替换原则息息相关。所谓里氏替换原则,就是指在代码中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立。公有继承正是体现这样的一种类关系。子类对原创 2021-05-27 16:53:45 · 128 阅读 · 0 评论 -
《Effictive C++》学习笔记—构造/析构/赋值运算
《EffictiveC++》学习笔记 —构造/析构/赋值运算条款05 — 了解C++默认执行哪些函数条款06 — 若不想使用编译器自动生成的函数,就该明确拒绝1、初步的想法:将拷贝函数声明为private2、第二个想法:只声明而不实现拷贝函数3、使用接口提供统一的标准4、C++11中的实现条款07:为多态基类声明virtual析构函数1、non-virtual析构函数在多态中引发的问题条款05 — 了解C++默认执行哪些函数关于普通构造函数和拷贝构造函数的执行情况和产生条件,我们在《深度探索C++对象模原创 2021-04-25 17:10:16 · 177 阅读 · 0 评论 -
《Effictive C++》学习笔记 —让自己习惯C++
《EffictiveC++》学习笔记 — 让自己习惯C++条款01 — 视C++为一个语言联邦1、以C成分工作的面向过程编程2、面向对象编程3、泛型编程4、STL条款02 — 尽量以const,enum,inline替换#define1、#define 和 const2、#define 和 enum条款01 — 视C++为一个语言联邦将C++看做是多种次语言的集合:以C成分工作的面向过程编程、面向对象编程、泛型编程、STL。对不同的次语言我们使用不同的规则合集。1、以C成分工作的面向过程编程按照C的原创 2021-04-06 21:04:49 · 193 阅读 · 1 评论 -
《Effictive C++》学习笔记 — 资源管理
《Effictive C++》学习笔记 — 资源管理条款13 — 以对象管理资源1、使用goto的资源管理2、以对象管理资源(1)获得资源后立刻放进管理对象内(2)运用析构函数确保资源释放3、C++标准库中的智能指针(1)auto_ptr(2)unique_ptr条款13 — 以对象管理资源1、使用goto的资源管理在C和C++中对goto关键字的使用被诟病违背了结构化编程。然而,由于内存资源是由我们自己维护的,很多情况下我们又不得不使用goto保证内存的释放。#include <iostre原创 2021-04-28 17:11:59 · 94 阅读 · 0 评论 -
《Effictive C++》学习笔记 — 设计与声明
《Effictive C++》学习笔记 — 设计与声明条款18 —让接口容易被正确使用,不易被误用二级目录三级目录条款18 —让接口容易被正确使用,不易被误用编译过的代码的行为应该能满足客户的需求。同时,开发接口之前要充分思考客户可能出现什么样的错误。如:class CLS_Date{public: CLS_Date(int _iYear, int _iMonth, int _iDay) { ... }};当客户面对这样一个类时,我们能保证他们传参的顺序是按年月日来的吗?并不能。那原创 2021-05-08 17:17:08 · 165 阅读 · 0 评论 -
《Effictive C++》学习笔记 — 实现
《Effictive C++》学习笔记 — 实现条款26 — 尽可能延后变量定义式的出现时间1、过早定义变量的代价2、延后变量定义直到获取到尽可能多的构造信息条款27 — 尽量少做转型动作1、static_const 之新对象 or 原对象2、降低效率的dynamic_cast条款26 — 尽可能延后变量定义式的出现时间1、过早定义变量的代价如果我们为一个定义了一个可能不使用的变量,我们就需要为之付出构造和析构的代价。在我的实际工作中,最有可能出现这种问题应该就是在使用goto语句的情况下。我们为了使原创 2021-05-16 21:06:02 · 171 阅读 · 0 评论