TianMu
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

Effective C++ 条款30 inline

条款30 : 透彻了解inlining的里里外外 inline 函数, 多么棒的点子! 本条款将带我们透彻了解inlining的里里外外, 与往常的形式不同, 我会以知识点集的形式把书中对inline的描述列举处理, 可更简单明了的认识inline. inline的优劣 inline函数, 看起来像函数, 动作像函数, 却比宏好得多, 调用它们不用蒙受函数调用所带来的额外开销. 编译器会对inl
2024-12-09
#Effective C++

Effective C++ 条款29 异常安全性

条款29 : 为”异常安全”而努力是值得的 异常安全性是我们每个程序员都要考量的内容, 我们有必要知道我们写出的每个函数保证了怎样的异常安全, 因为一个函数是否会抛出异常不仅会影响我们是否使用该函数的决策, 也会影响部分的编译器优化策略, 让我们通过本条款来充分认识异常安全性. 先了解本条款的例子, 假设有个class用来表现夹带背景图案的GUI界面, 这个class用于多线程环境, 所以它有个
2024-12-08
#Effective C++ #异常安全

瓦尔登湖读书摘录(2)

假如我们醒来并没有过上比睡前更崇高的生活, 那么白天也就没什么好期待的了. 人要是不相信在喧嚣的白日之前, 有者更神圣,更绚丽的时刻, 那么他对生活肯定已经感到绝望, 而他所走的人生之路肯定是江河日下, 越来越黑暗的. 只要我清醒着, 心中有光明, 那就是早晨. 我们必须学会再次苏醒, 并保持着清醒的状态, 但要借助的不是某些生硬的措施, 而是对黎明的无限期待, 这是在我们睡得最熟时也会也
2024-12-07
#阅读 #瓦尔登湖

Effective C++ 条款28 避免返回handles指向对象内部成分

条款28 : 避免返回handles指向对象内部成分让我们先来明确本条款中的两个概念 : handle : 即句柄, 号码牌, 可以理解为各种指针, 引用, 迭代器. 内部成分 : private成员变量和成员函数. 有了上面两个概念, 就可以比较直观地理解本条款了, 不过在通读完本条款后, 本条款虽说是避免返回handles指向对象内部成分, 但是其实内容着重在解释在必须返回handles
2024-12-07
#Effective C++

Effective C++ 条款27 类型转换

条款27 : 尽量少做转型动作 优良的C++代码很少使用转型, 但是要完全摆脱它们又太过不切实际, 我们应当保证”类型错误”绝无可能发生. 本条款在了解各种转型动作的前提下, 指出了一些有风险的转型操作及其解决方法. 我们先来回顾一下类型转换 : 旧式C风格转型12(T)expression;T(experssion); 新式转型1234static_cast<T>(expres
2024-12-06
#Effective C++

Effective C++ 条款26 尽可能延后变量定义式的出现时间

条款26 : 尽可能延后变量定义式的出现时间只要你定义了一个变量, 并且其类型带有构造函数或析构函数, 那么当程序控制流到达变量定义式时, 你便得承担构造成本; 当变量离开作用域时, 你便得承担析构成本. 本条款希望我们避免定义变量但最终并未使用的情况, 不要白白浪费构造和析构的成本. 先来看看什么情况下会出现定义变量但最终并未使用 : 这是一个密码加密的函数, 由于密码本身不能修改, 所以要定
2024-12-05
#Effective C++

Effective C++ 条款25 考虑写出一个不抛异常的swap函数

条款25 : 考虑写出一个不抛异常的swap函数 swap 是一个有趣的函数, 原本它只是STL的一部分, 而后成为了异常安全性编程中的脊柱, 有关异常安全性我在条款11中介绍过, 在之后的条款29中也将着重着墨. 由于swap相当有用, 适当的实现非常重要, 好的swap设计可以带来非凡的效率提升. swap顾名思义, 意为将两对象的值彼此赋予对方, 在现代标准库中的实现是这样 : 1234
2024-12-04
#Effective C++

Effective C++ 条款24 类型转换与non-member函数

条款24: 若所有参数皆需类型转换, 请为此采用non-member函数 虽然令classes支持隐式类型转换是一个坏主意, 但常常有许多意外出现, 有些类型之间的关联实在太强, 我们经常想把它们放在一起用, 例如支持int类型隐式转换为Rational(有理数), 当对便利性的需求非常强烈之后, 也许支持隐式类型转换也未必是坏事. 书中给出了一个Rational类, 它可以由int
2024-12-03
#Effective C++

瓦尔登湖读书摘录(1)

人只有想起自己的无知才能有长进, 但他如此忙碌于运用自己已有的知识, 又如何能想得起来呢? 受制于对自己的看法, 受制于他通过自己行动所赢得的名誉. 大家好像都选择了相同的生活模式, 好像这种模式是在他们清醒时做出的选择, 然而其实他们并不认为还有其他模式可选, 但聪敏而健康的人记得太阳每天都会升起. 所有的改变都是奇迹, 但这种奇迹时时刻刻都在发生. 在当前的境况中找到他们的勇气和灵感
2024-12-02
#阅读 #瓦尔登湖

Effective C++ 条款22-23 封装性相关

条款22 : 将成员变量声明为private本条款中, 作者明确声明, 如果没有必要的原因, 务必将成员变量声明为private, 而非public/protected, 并苦口婆心地列举出了非常多使用private的优势, 让我们逐一阅览 : 保证了语法一致性当客户通过对象调用时, 如果将成员变量声明为private, 那么就省去了客户思考要不要加小括号的问题, 只要无脑加括号就行了. 对
2024-12-02
#Effective C++
1…7891011

搜索

Hexo Fluid
总访问量 次 总访客数 人