More Effective C++ 读书摘要(目录索引)

《Effective C++》 读书笔记(详细总结55条款)上篇 下面从四个方面来说 (1) C++ 以 C 为基础,很多语句语法都没有改变,只是进行了扩展,C++ 解决问题的时候,可以理解为 C 的高效解法 (2) 面向对象,有构造函数,析构函数,继承、封装、多态、虚函数动态绑定,这是不同于C 语言的部分 (3) 泛型编程、可以理解为代码的模型,但是代码本身并不占用内存空间,只有在实例化的时候,才分配内存,所以可以提高代码复用性 阅读详情

一、基础议题

Item 1. 区分指针和引用

Item 2. 优先考虑C++风格的类型转换

Item 3. 决不要把多态用于数组

Item 4. 避免不必要的默认构造函数

二、运算符

Item 5. 小心用户自定义的转换函数

Item 6. 区分自增运算符和自减运算符的前缀形式与后缀形式

Item 7. 不要重载"&&"、"||"和","

Item 8. 理解new和delete在不同情形下的含义

三、异常

Item9.使用析构函数防止资源泄漏

Item10. 防止构造函数里的资源泄漏
Item11. 阻止异常传递到析构函数以外

Item12. 理解抛出异常与传递参数或者调用虚函数之间的不同

Item13.通过引用捕获异常

Item14. 审慎地使用异常规格

Item15. 理解异常处理所付出的代价

四、效率

Item16. 记住80-20准则

Item17. 考虑使用延迟计算

Item18. 分期摊还预期的计算开销

Item19. 了解临时对象的来源

Item20. 协助编译器实现返回值优化

Item21. 通过函数重载避免隐式类型转换

Item22. 考虑使用op=来取代单独的op运算符

Item23. 考虑使用其他等价的程序库

Item24. 理解虚函数、多重继承、虚基类以及RTTI所带来的开销

五、技巧

Item25. 使构造函数和非成员函数具有虚函数的行为

Item26. 限制类对象的个数

Item27. 要求或禁止对象分配在堆上

Item28. 智能(smart)指针

Item29. 引用计数

Item30. 代理类

Item31. 基于多个对象的虚函数

六、杂项

Item32. 在将来时态下开发程序

Item33. 将非尾端类设计为抽象类

Item34. 理解如何在同一程序中混合使用C++和C

Item35. 让自己熟悉C++语言标准

【绝版C++书籍】《Effective STL》读书笔记 《Effective STL》读书笔记写在前面《Effective STL》中可能过时的内容1 容器第1条:慎重选择容器类型。第2条:不要试图编写独立于容器类型的代码。第3条:确保容器中的对象拷贝正确而高效。第4条:调用empty而不是检查size()是否为0。第5条:区间成员函数优先于与之对应的单元素成员函数。第6条:当心C++编译器最烦人的分析机制。第7条:如果入容器中包含了通过new操作创建的指针,切记在容器对象析构前将delete掉。第8条:切勿创建包含auto_ptr的容器对象。第9条:慎重选择删 阅读详情

相关推荐

MoreEffectiveC++

MoreEffective C++ 英文版, PDF格式 清晰

More Effective C++ 35个做法

前言 最近在看《More Effective C++》这个书,自己 C++ 基础还是不行,有的地方看的有点懵,最后还是坚持看完了,做做笔记,简短的 记录一下有哪些改善编程与设计的有效方法。 推荐还是可以买一本原书的,书中例子比较丰富,更容易理解一些。 一、基础议题 1. 仔细区别指针(pointer)和引用(reference) 指针可以指向 null,引用不允许指向 null。 指针可以重新被赋...

阿飞的博客 2665

More Effective C++中文版

一些经过验证的用来改善程序效率的方法,包括检验C++语言特性所带来的时间和空间上的成本。   全面地描述了C++专家所使用的高级技术,包括placement new、virtual constructors、smart pointers、reference counting、proxy classes和double-dispatching等。   以实例说明异常处理带给C++类和函数的冲击。   介绍新的语言特性,包括bool、mutable、explicit、namespaces、成员模板、标准模板库等。如果你的编译器不支持这些特性,本书还介绍了如何不利用它们完成工作。

More Effective C++中文版35个改善编程与设计的有效方法 目录

第1章 基础议题  条款1:区分指针和引用  条款2:优先考虑c++风格的类型转换  条款3:决不要把多态应用于数组  条款4:避免不必要的默认构造函数 第2章 运算符  条款5:小心用户自定义的转换函数  条款6:区分自增运算符和自减运算符的前缀形式与后缀形式

princess9的专栏 760

ifix5.8连接ab plc的点-通过rslinx

以ifix连接ab plc的点为例 1.先在rslinx上把plc的点导出为opc server 2.使用opc power tool 作为opc client 去连接 3.保存到项目的PDB文件夹下面,并且以节点名命名。 也可以不以节点名命名,系统自动会生成一个以节点名命名的这种文件,就显得很乱。 同时,项目的PDB目录下面必须还得拷过来一个de...

中国智造2025 4114

微机原理--输入输出实验--emu8086

通过实验,验证了基本要求,实现了一位数加法运算的功能,同时实现了两位数加法运算的功能,还有一位数的除法。思考题(1)输入输出数据和计算用数据的区别:从键盘上输入以及输出的数据要在通过转化为计算机所识别的二进制的数字,和计算所用的数据之间相差30H。(2)单字符输入输出和串输入输出的不同之处:单字符的输入使用1号功能键,输出通过2号功能调用,且待显示字符送给DL寄存器;串输入使用0A功能,输出通过9号功能调用,DS:DX指向待显示字符串,且字符串必须以“$”结束。

m0_58837398的博客 2419

《More Effective C++》

文章目录第一章 基础议题2.最好使用C++转型操作符 第一章 基础议题 2.最好使用C++转型操作符 1.static_cast static_cast基本上拥有与C旧式转换相同的威力与意义,以及相同的限制,它是与C-style最接近的一个转换; 使用情况概述:通常是数值数据类型转换(比如float->int);不执行运行时类型检查(安全性不如dynamic_cast);能用于多态向上转换,向下则不一定能保证真确; 补充:任何编写程序时能够明确的类型转换都可以使用static_cast(static_

strdhgthbbh的博客 216

CANoe从入门到精通“保姆级”教程(二)- 堪称全网“最全”系列

CANoe各功能区介绍;

车载控制器AutoSAR软件开发工程师 2万+

More Effective C++ 精简版(目录)

3. 基础议题 3.1 Item M1:指针与引用的区别3.2 Item M2:尽量使用C++风格的类型转换 3.3 Item M3:不要对数组使用多态 3.4 Item M4:避免无用的缺省构造函数 4. 运算符 4.1 Item M5:谨慎定义类型转换函数 4.2 Item M6:自增(increment)、自减(...

weixin_30399797的博客 260

STM32F103C8T6飞控入门:从零开始,用HAL库和MPU6050搭建你的第一架四轴无人机

本文详细介绍了如何使用STM32F103C8T6和MPU6050模块从零开始搭建四轴无人机飞控系统。通过硬件选型、电路设计、HAL库配置、姿态解算算法实现以及PID控制等步骤,帮助创客和嵌入式爱好者快速入门飞控开发。文章还提供了实用的调试技巧和常见问题解决方案,适合想要掌握四旋翼无人机核心技术的开发者。

weixin_42524750的博客 266

化工设计软件:AutoCAD Plant 3D二次开发_(1).AutoCADPlant3D概述

AutoCAD Plant 3D 是一款专为化工行业设计的三维工厂设计和建模软件。它基于AutoCAD平台,提供了强大的三维建模功能和专业的化工设计工具,帮助工程师和设计师在工厂设计过程中提高效率和准确性。AutoCAD Plant 3D不仅能够创建详细的三维模型,还可以进行管道设计、设备布置、支架设计等复杂任务。通过上述案例,我们可以看出 AutoCAD Plant 3D 在化工厂设计中的强大功能和优势。该软件不仅提供了丰富的建模工具和专业的设计功能,还支持二次开发,使用户能够根据具体需求进行定制化操作。

kkchenjj的博客 1105

Effective C++和More Effective C++

More Effective C++读书笔记 条款1:指针与引用的区别 二者之间的区别是:在任何情况下都不能用指向空值的引用,而指针则可以;指针可以被重新赋值以指向另一个不同的对象,但是引用则总是指向在初始化时被指定的对象,以后不能改变 在以下情况下使用指针:一是存在不指向任何对象的可能性;二是需要能够在不同的时刻指向不同的对象 在以下情况使用引用:总是指向

clam_clam的专栏 6972

WinCC实现定时存储数据至SQLServer

环境 Win10 WinCC V7.5 SQL Server 2016 运行结果 流程 WinCC变量 全局VB脚本 (我设置的是每2秒存一次,因此周期性触发器设置1秒)

skr? 3990

C++之《Effective C++》读书总结(1)

**将 C++ 视为一个语言联邦(C、Object-Oriented C++、Template C++、STL)**,是《Effective C++》中极具洞察力的抽象。这种观点强调:C++ 并非单一范式语言,而是由多个相互重叠、规则各异的子语言共同构成。理解这一点,有助于开发者在不同语境下采用恰当的思维模型,避免因误用某一子语言的规则而引发隐蔽缺陷或性能问题。

梅花香自苦寒来,宝剑锋从磨砺出。 2094

GaussDB本地安装手册(主备模式)

如果实例状态是Normal,则安装成功。三节点集中式配置文件。

Sebastien23的博客 2638

18、探索隐私工程技术的前沿:从理论到实践

本文深入探讨了隐私工程技术的核心概念、关键技术及其应用场景,分析了加密技术、访问控制和用户界面设计等在隐私保护中的作用,并结合数据库保护、物联网设备等实际场景进行阐述。同时,文章还讨论了隐私工程技术面临的挑战与未来发展趋势,提出了数据最小化原则、差分隐私、隐私增强技术等优化策略以及隐私设计、隐私影响评估等最佳实践,最后展望了新兴技术对隐私保护的影响及法规推动下的发展方向。

weixin_35307279的博客 373

《Effective C++》读书摘要

来源: http://www.cnblogs.com/fanzhidongyzby/archive/2012/11/18/2775603.html>  最近刚读完侯捷的《Effective C++》,相对来说,这本书的内容比较贴近基础,对于刚掌握C++基础的人会有不少的提高。不过书中还是涉及了不少C++的高级特性,阅读起来需要查阅相关的资料。书中给出了大量的示例和代码来说明具体规则的原理,我

Invoker's Tower 3351

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

读书笔记_Effective C++_习惯C++

这是一本非常经典C++书籍,也是我在工作中发现自己C++上还有很多薄弱点的时候经常拿来充电的。这本书内容很多,讲了很多如何高效地使用C++的方法,有些地方自己也没能啃透,读过一遍后很多知识点容易忘记,这次是一条一条地进行温习,之所以会分享出来是觉得对于程序员来说,好记性不如烂笔头,自己多动手往往在真正写程序的时候能够像条件反射一样写出好的代码。慢工出细活,对待技术要有谨慎和敬畏之心。这本书推荐喜欢C

John_cdy的专栏 3194

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

More Effective C++读书笔记

More Effective C++读书笔记基础议题条款1:区别指针与引用条款2:尽量使用C++风格的类型转换条款3:不要对数组使用多态条款4:非必要不提供默认构造函数操作符条款5:谨慎定义类型转换函数条款6:自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别条款7:不要重载”&&”, “||”,或”,”条款8:理解各种不同含义的new和delete异常条款9:使用析构函数防止资源泄漏条款10:在构造函数中防止资源泄漏条款11:禁止异常信息(exceptio

cwdben的博客 492

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Effective C++读书笔记

 记得前段时间又一次拿起《Effective C++》的时候,有种豁然开朗的感觉,所以翻出了我第一遍读时做的笔记。只做参考以及查阅之用。如有需要请参阅《Effective C++》书本。 by shenzi/2010.5.17一.让自己习惯C++   条款01:视C++为一个语言联邦    为了更好的理解C++,我们将C++分解为四个主要次语言:C。说到底C++仍是以C

shenzi的天空 2万+

《Effective C++》读书笔记

Effective C++Scott Meyers 屋檐下的水滴--读书笔记系列http://blog.youkuaiyun.com/dwater 导读 Introduction1.   所谓declaration,是用来将一个object、function、class或template的类型告诉编译器,它不带细节信息。所谓definition,是用来将细节信息提供给编译器。对

DWATER 3167

《Effective C++》和《More Effective C++》汇总

More Effective C++读书笔记 条款1:指针与引用的区别 二者之间的区别是:在任何情况下都不能用指向空值的引用,而指针则可以;指针可以被重新赋值以指向另一个不同的对象,但是引用则总是指向在初始化时被指定的对象,以后不能改变 在以下情况下使用指针:一是存在不指向任何对象的可能性;二是需要能够在不同的时刻指向不同的对象 在以下情况使用引用:总是指向一个对象且一旦指向一

人生代码,代码人生。。。 4262

More Effective C++读书小记

1、仔细区别pointer和references       不论pointer或是references都使你间接参考其它对象。      没有所谓的null reference。一个reference必须总代表某个对象。      如果你有一个变量,其目的是用来指向(代表)另一个对象,但是也有可能它不指向(代表)任何对象,那么你应该使用pointer,因为你可以将指针设为null。换个角度

xl2432的博客 1496

读书笔记系列2:《More Effective C++》

More Effective C++书摘及代码示例

千里之行,始于足下 1440

C++之《Effective C++》读书总结(2)

在 C++ 中,“以对象管理资源”并不是一种语法技巧,而是一种资源生命周期与对象生命周期绑定的设计哲学。RAII(Resource Acquisition Is Initialization)的核心思想是:**资源一旦被成功获取,就必须立刻交由对象托管**。

梅花香自苦寒来,宝剑锋从磨砺出。 1348
上一篇: More Effective C++ 读书摘要(auto_ptr的一个实现)
下一篇: 遗传算法解TSP问题的C++源码
thy38
博客等级 码龄19年 184粉丝 116原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值