《Exceptional C++》笔记(2)

More Exceptional C++ 读书笔记 More Exceptional C++ 读书笔记 Item 1 Switching Streams (1): 多考虑易读性,避免编写过渡简洁但是不易懂,不易维护的代码;    记个相当简洁的流切换代码:  (argc > 2 ? ofstream(argv[2], ios::out|ios::binary) : cout ) 1 ? ifstream(argv[1],      ios 阅读详情

 

1 内存管理
  1. operator new和operator delete永远都是静态成员函数!,因此最好显示第将这两个函数声明为静态函数,虽然C++并不会强制要求显式第使用static
  2. operator new和operator delete因为是一个静态函数,因此不能成为虚函数,但从行为上来看它们却像是虚函数,子类会调用正确的operator new和operator delete函数
  3. C++规定:传递给operator delete[]的指针的静态类型与动态类型必须是相同的.因此
    
    
          
    1. B* pb = new D[ 100 ]; 
    2. delete[] pb 
    3. //这段代码的行为是未定义的 

    而对operator delete和operator new,operator new[ ]则并无此限制. 因此,永远都不要通过多态的方式处理数组

  4. const autoptr意味着永远不会失去所有权,因此对一个const autoptr进行拷贝是非法的(autoptr的拷贝函数参数为非const引用).
2 对象标识
  1. 在编写拷贝赋值运算函数时,永远都不要指望能够通过对自我赋值进行检测来保证函数的正确性(当类operator&可以被重载);应该在拷贝赋值运算符函数中使用"创建临时对象并进行交换"的惯用法,折中方法不仅是异常安全的,而且在处理自我赋值时也是安全的.
  2. 可以将自我赋值检测作为一种优化手段,以避免不必要的工作,这也是正确的做法
  3. 在构造函数中进行自我赋值的检测是无意义的,因为我们的对象还在构造过程中,因此对象other与我们的对象不可能相等
  4. 在有些情况下,指针的比较运算与大多数人想象的不一样
    • 对字符串常量进行比较运算的行为未定义.因为C++标准明确指出,编译器可以在重叠的内存中存储字符串
    • 有时候,在通过内部的运算符<,<=,>,>=来比较裸指针时,不能得到明确定义的结果.
3 控制流程
  1. 在编译单元之间,全局变量(包括类的静态成员)的初始化顺序是未定义的 避免使用全局变量或静态变量.如果必须使用,那么一定要特别注意这些变量的初始化顺序
  2. 在多重继承中,子类按照从左到右顺序对非虚基类进行初始化,为了防止一个基类初始化时用到了另一个基类,另一个基类还未初始化的情况出现: 在构造函数的初始值列表中,应该把基类按照它们在类定义中出现的先后顺序进行排序
  3. 成员变量是按照它们在类定义中出现的先后顺序来进行初始化的: 在构造函数的初始值列表中,应该把成员变量按照它们在类定义中出现的先后顺序进行排序
  4. 对函数参数进行求值的顺序是未定义的: 在编写代码时,永远都不应该依赖函数参数的求值顺序
  5. assert()函数会在release版本中被去掉: 永远不要使代码的执行依赖于函数assert()的调用
Date: 2013-04-16 07:08:00 中国标准时间
Author:
Org version 7.8.11 with Emacs version 24

本文出自 “暗日” 博客,请务必保留此出处http://darksun.blog.51cto.com/3874064/1178917

《Exceptional C++ Style》译序[已出版] 《Exceptional C++ Style》译序                                                               by 刘未鹏   逍遥派武功讲究轻灵飘逸,闲雅清隽,丁春秋和虚竹这一交上手,但见一个童颜白发,宛如神仙,一个僧袖飘飘,冷若御风。两人都是一沾即走,当真便似一对花间蝴蝶,蹁跹不定,于这“逍遥”二字发挥到了淋 阅读详情

相关推荐

Exceptional C++ 目录

第1章 泛型程序设计与 C++ 标准库 条款1:迭代器 条款2:大小写不敏感的字符串——之一 条款3:大小写不敏感的字符串——之二 条款4:可重用性最大的泛型容器——之一 条款5:可重用性最大的泛型容器——之二 条款6:临时对象 条款7:标准库的使用(再论临时对象) 第2章 异常安全性的问题与技术 条款8:编写异常安全的代码——之一 条款9:编写异常安全的代码——之二 条

早晨的阳光 的技术博客 896

More Exceptional C++ 读书笔记2

//内存管理的一部分来自于http://blog.youkuaiyun.com/kingofark/category/9109.aspx Item 1 Iterator:  (1): 注意当前迭代器是否有效,如果无效则解引用产生程序错误; (2):注意当前迭代器生命期,某些容器经过某些操作后将重新分配内部存储空间,则当前迭代器无效; (3) : 有效范围, 类似find(first, last

小飞侠 778

最终篇——SWAT模型的建立

同理,Soil Data也是同样的方法导入,在Soil Database Options的选项中,选择UserSiol,用同样的方法导入土壤类型,进行重分类。打开窗口后,只定义HRU Thresholdes,其余两个不用设置,设定各数据单元的计算率,这里的10%的意思是计算精度,即分成级HRU计算单元太小,小于平均计算单元的10%,我们就不对这HRU单元进行计算(也就是说太破碎的计算单元不进行计算),若选择0%意味着全部进行计算,需要耗费大量的内存和时间,对计算机要求较高,不建议。

m0_72556434的博客 5622

Exceptional C++学习笔记(2) 多态

第5条 泛型性的风味之一:基础      1 C++模板提供了编译期多态的能力        说到面向对象特性之一“多态”,通常指常规的多态,即通过虚函数实现的“动态多态”或者叫”运行期多态“,而该条款说的是“编译期间多态”,也可以叫“静态多态”。

u012101561的博客 310

RK3588上rknn_toolkit_lite2报错解决:手把手教你更新librknnrt.so的正确姿势

本文针对在RK3588平台上使用rknn_toolkit_lite2时遇到的“Invalid RKNN model version”等常见错误,提供了完整的诊断与解决方案。文章深入剖析了RKNN生态系统各组件(如librknnrt.so、RKNN Server)版本不兼容的根源,并手把手指导如何安全、正确地更新librknnrt.so运行时库,确保AI模型在RK3588 NPU上实现高效推理。

weixin_29189003的博客 521

学好超几何分布的核心公式,破解双色球!

彩票本质是概率游戏,不存在"必中公式"科学投注的核心是风险收益比管理长期投注的期望值始终为负(理论回报率约47%-63%)数学维度:运用概率工具优化策略经济维度:控制投注成本在可承受范围人文维度:将彩票视为社会公益的参与方式通过本文构建的数学模型,彩民可以在概率框架内实现更理性的投注决策。但最终能否收获幸运,仍取决于那个永恒的未知数——概率女神的眷顾。一、超几何分布的核心公式。

weixin_44904675的博客 1万+

Exceptional C++ 读书笔记

Exceptional C++ 读书笔记  1 泛型程序设计与C++标准库(没看)  Item 1 Iterator: 1)注意当前迭代器是否有效,如果无效则解引用产生程序错误; 2)注意当前迭代器生命期,某些容器经过某些操作后将重新分配内部存储空间,则当前迭代器无效; 3)有效范围, 类似find(first, last, value)时, 迭代器first 必须在la

小飞侠 747

task5:在本地搭建大模型(ollama 和 LM studio 对比),接入 openclaw

关于大模型,大家千万不要想着在本地部署,根本不可行,没有那个财力。另外大模型迭代快,不可能每周都在下载大模型。再次,还是国外的模型好用,国内的模型真的在 deepresearch 上就有很大问题,你们懂的。所以本篇文章,还是聚焦在探索层面+实操,并不会实战。

这里是 AI 食用指南,持续分享有用的AI 实操和应用! 1971

Exceptional C++ 翻译 感言

 当我从冀康手中拿到这本书的时候,心里既是激动,又是忐忑。毫无疑问,《Exceptional C++》是C++中的权威力作,能够翻译大师们的著作,不仅是我的荣誉,也是我向往已久的事情。不过,激动之余,又不免有所忐忑。从1999年《Exceptional C++》英文版问世以来,在国内已经推出了一些中文版本,包括:候捷先生于2000年推出的繁体中文版和卓小涛先生于2003年推出的简体中文版。由于

niexuejun的专栏 827

H3C IPsec over GRE VPN 实验

配置 IPsec over GRE VPN 来连通两端内网

M建的博客 2478

置顶必读(3) |《滚雪球学SpringBoot》· 高质量专栏介绍,你值得拥有!

《滚雪球学SpringBoot》 并不是普通的技术讲解合集,它是专为开发者精心设计的系统化学习路径。通过不断“滚动学习”,我们将带领你从基础入门到高阶应用,从理解每一行代码到设计和优化大规模分布式系统,最终帮助你成长为一位精通 spring架构 的工程师。

**My Coding Family** 15万+

more exceptional c++读书笔记

Part1 我是在读完Scott Meyers的《Effective c++》之后才读到这本书的。能够讨论特定的主题而不是将一门语言作为一个整体来看待是我理解c++的首选方式,所以Sutter和Meyers的书非常适合我。 与Meyers系列相比,exception c++系列的主要优势在于,您可以告诉Sutter是更好的程序员。你可以相信Meyers 所说的一切都是正确的,但最终你真正得到的只是一些关于如何做某些事情的额外指示。另一方面,Sutter在同样的主题上讲得更深入一些,让你觉得自己可以写出更

itaoest的博客 413

RAGFlow 系列教程 第三课:后端服务入口与请求生命周期

本文深入解析RAGFlow v0.25.0后端核心机制,重点介绍了Quart框架选型原因和服务启动流程。RAGFlow选择Quart作为Web框架,主要基于其异步能力对LLM调用的支持、Flask生态兼容性以及长响应超时处理优势。文章详细拆解了服务启动的8个关键步骤,从日志初始化到HTTP服务启动,并分析了配置加载、数据库初始化等核心环节。通过源码分析揭示了RAGFlow如何实现动态API注册、双重认证体系等关键技术点,为深入理解该系统的请求处理生命周期提供了基础。

weixin_43674738的博客 189

Exceptional C++ 笔记

1、 使用常引用const & 代替值传递 2、 使用先增操作,避免使用后增操作:在进行后增操作时,对象不但需要自增,还要返回一个包含自增前值得临时对象。 3、 遵循‘单入口/单出口’原则,绝不要在一个函数里面写有多个return语句。 4、 绝对不要返回对局部对象的引用!!! 5、 尽量使用标准库算法 6、 优先采用 "a opt= b" 这样的写法, 而不是 "a...

qq_32619837的博客 358

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Exceptional C++

(翻译的太差了)一、语法细节C++不允许修改内置类型的临时变量缺省参数根据静态类型获得重载的new和delete操作符永远都是静态的,不管你声明static没有二、惯用法选择前置递增,只有打算使用初始值时才使用后置递增,并且使用前置递增来实现后置递增注意由隐式转换创建的隐藏临时对象;避免这个问题的好办法,是使用explicit构造函数,避免编写转换操作符永远不要#include不必要的头文件;当前

切尔斯基 5305

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

exceptional c++读书笔记

xx

onlyForCloud的专栏 494

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

More Exceptional C++ 笔记

Exceptional C++ 读书笔记  1 泛型程序设计与C++标准库(没看)  Item 1 Iterator: 1)注意当前迭代器是否有效,如果无效则解引用产生程序错误; 2)注意当前迭代器生命期,某些容器经过某些操作后将重新分配内部存储空间,则当前迭代器无效; 3)有效范围, 类似find(first, last, value)时, 迭代器first 必须在last之

小飞侠 1080

Exceptional C++ 电子书正版下载与免费资源问题解答

《Exceptional C++》是C++编程领域的经典著作,由Herb Sutter撰写,深入探讨了异常安全、资源管理、泛型编程等高级主题。

2509_93883384的博客 263

More Exceptional C++ 中文版试读(译序及目录)

 [Herb Sutter 的名作More Exceptional C++中文版即将出版。作为本书译者,我很高兴将本书推荐给大家。征得华中科技大学出版社同意,我将公开部分译稿,敬请大家批评指正。]  与大师面对面(译序)  小提琴家穆特录制过一张唱片,收录的是贝多芬最伟大的两部小提琴作品1。聆听那张唱片,你仿佛听见贝多芬在向你倾诉他对音乐艺术的理解和感悟、为你解答小提琴音乐创作

lostmouse的专栏 1803

《Exceptional C++》笔记(1)

Exceptional_C++ Table of Contents 1 编译防火墙和Pimp惯用法 2 名字查找,名字控件和接口规则 1 编译防火墙和Pimp惯用法 对于函数的参数类型和返回值类型来说,只需要前置申明就足够了 被继承的基类必须有完整的定义,这样编译器才能确定子类对象的大小,虚函数以及其他基本信息. 定义类中

暗日 550

Herb Sutter 又要出新书--《Exceptional C++ Style》啦!

《Exceptional C++ Style》40 New Engineering Puzzles , Programming Problems, and Solutions3月1日收到Herb Sutter的mailing-list, 浏览之下发现Herb Sutter又有新书要出版了--《Exceptional C++ Style》,现在已到了最后结集和制作索引的阶段,

adamsun(令狐冲)的专栏 1822
上一篇: 《Exceptional C++》笔记(1)
下一篇: Emacs在走向没落吗?
darksun9972
博客等级 码龄19年 42粉丝 399原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值