关闭

<Effective C++: 习惯C++> 笔记

772人阅读 评论(0) 收藏 举报

条款01:视C++为一个语言联邦。


C++目前是个多重范型编程语言,一个同时支持过程形式、面向对象形式、函数形式、范型形式、元编程形式的语言。


总的来说,C++包含四种次语言。


  1. C
  2. Object-Oriented C++
  3. Template C++
  4. STL


另外,还有boost库,包含了很多很多尚未加入标准的新特性。


条款02:尽量以const、enum、inline替换#define。

即宁可以编译器替换预处理器。


对于单纯常量,最好以const对象或enum替换#define。

对于形似函数的宏,最好改用inline函数替换#define。


条款03:尽可能使用const。

在声明const变量时,const修饰他左边,离他近的类型。(这里说的是指针与const)


将某些东西声明为const可帮助编译器侦测出错误用法。const可能被施加于任何作用域对象、函数参数、函数返回类型、函数本体。

编译器强制实施bitwise constness,但你编写程序的时候,应该使用概念上的常量性,mutable可以释放掉non-static成员变量的bitwise constness约束。

当const和non-const成员函数有着实质等价的实现时,令non-const版本调用const版本,可避免代码重复。


条款04:保证对象被使用前已被初始化。


为内置型对象进行手工初始化,因为C++不保证初始化它们。

构造函数最好使用成员初始化列,而不要在构造函数体内使用赋值操作。初值列列出的成员变量,其排列次序应该和它们在class中的声明次序相同。

为免除“跨编译单元的初始化次序”问题,请以local static对象替换non-local static对象,用函数返回其引用。(很特别的方法)

0
0
查看评论

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

这是一本非常经典C++书籍,也是我在工作中发现自己C++上还有很多薄弱点的时候经常拿来充电的。这本书内容很多,讲了很多如何高效地使用C++的方法,有些地方自己也没能啃透,读过一遍后很多知识点容易忘记,这次是一条一条地进行温习,之所以会分享出来是觉得对于程序员来说,好记性不如烂笔头,自己多动手往往在真...
  • John_cdy
  • John_cdy
  • 2015-05-04 09:51
  • 2208

【C++】《Effective C++》读书笔记汇总

我之前边读《Effective C++》边写下每个条款的读书笔记,这一版是C++11之前的版本。这里我将每个条款令我印象深刻的点小结一下。 1、C++包括:Plain C(面向过程)、OOP(面向对象)、模板(泛型和模板元编程)、STL(C++标准库)。 2、用inline、enum、const代...
  • lpsl1882
  • lpsl1882
  • 2016-04-06 11:14
  • 2494

《Effective Modern C++》读书笔记

Tags: c++ Note:为避免各种侵权问题,本文并没有复制原书任意文字(代码除外,作者已经声明代码可以被使用)。需要原书完整中文翻译的读者请等待官方译本的发布。 正文 为了让本文更加清晰,依然还是用条款的形式来介绍知识点。(但不能保证我写的条款就是原书的条款) ...
  • haluoluo211
  • haluoluo211
  • 2017-01-19 17:55
  • 815

Effective Modern C++笔记汇总

Effective Modern C++ 目录Item 1: Understand template type deduction….待续
  • zhangyifei216
  • zhangyifei216
  • 2017-06-05 16:09
  • 2174

C++学习(三)——Effective C++

1.让自己习惯C++ 01.视C++为一个语言联邦 C++高效编程守则视状况而变化,取决于你使用C++的哪一部分 02.尽量以const、enum、inline替换#define 对于单纯常量,最好以const对象或enum替换#define 对于形似函数的宏,最好改用inli...
  • davidwang414
  • davidwang414
  • 2016-06-10 07:30
  • 2182

决定干点事儿--翻译一下《effective modern c++》

写了很多关于C++11的博客,总是觉得不踏实,很多东西都是东拼西凑。市场上也很少有C++11的优秀书籍,但幸运的是Meyers老爷子并没有闲赋,为我们带来了《effective modern c++》。我们都要认清,一个人很难超越自我,超越自我的巅峰之作。因为不同的时代,也会早就不同的伟大作品。说上...
  • wangshubo1989
  • wangshubo1989
  • 2016-01-09 00:27
  • 5705

Effective C++(第3版)pdf

下载地址:网盘下载 内容简介  · · · · · · Effective C++是世界顶级C++大师Scott Meyers...
  • cf406061841
  • cf406061841
  • 2017-07-18 21:07
  • 779

《Effective Modern C++》翻译--简介

北京时间2016年1月9日10:31:06,正式开始翻译。水平有限,各位看官若有觉得不妥之处,请批评指正。 之前已经有人翻译了前几个条目,有些借鉴出处:http://www.cnblogs.com/magicsoar/p/3966177.html?utm_source=tuicool&utm...
  • wangshubo1989
  • wangshubo1989
  • 2016-01-09 12:52
  • 4837

《Effective C++》:条款44-条款45

条款44将与参数无关的代码抽离templates 条款45运用成员函数模板接受所有兼容类型
  • KangRoger
  • KangRoger
  • 2015-03-12 22:01
  • 1512

c/c++命名习惯

一直希望有一套自己的命名习惯。但为了读懂别人的程序,又必须了解别人的各种命名习惯。总之,希望在别人的基础上,建立一套完整的命名习惯。但我又不企图通过这一次就把习惯定下来,只是一种预订的方案。以后会进行修改,并最终拥有一套成熟的命名习惯。如此,对于文件的搜索也是极其方便。 一、在此之前,先考虑所涉及...
  • Wanggcong
  • Wanggcong
  • 2015-01-20 12:21
  • 810
    个人资料
    • 访问:604285次
    • 积分:7751
    • 等级:
    • 排名:第3263名
    • 原创:192篇
    • 转载:6篇
    • 译文:0篇
    • 评论:99条
    博客专栏
    文章分类
    最新评论