原文链接:

在线手册

第一章 从C转向C++

条款1:尽量用const和inline而不用#define

条款2:尽量用而不用

条款3:尽量用new和delete而不用malloc和free

条款4:尽量使用c++风格的注释

第二章 内存管理
条款5:对应的new和delete要采用相同的形式

条款6:析构函数里对指针成员调用delete

条款7:预先准备好内存不够的情况

条款8: 写operator new和operator delete时要遵循常规

条款9: 避免隐藏标准形式的new

条款10: 如果写了operator new就要同时写operator delete

第三章 构造函数,析构函数和赋值操作符

条款11: 为需要动态分配内存的类声明一个拷贝构造函数和一个赋值操作符

条款12: 尽量使用初始化而不要在构造函数里赋值

条款13: 初始化列表中成员列出的顺序和它们在类中声明的顺序相同

条款14: 确定基类有虚析构函数

条款15: 让operator=返回*this的引用

条款16: 在operator=中对所有数据成员赋值

条款17: 在operator=中检查给自己赋值的情况

第四章 类和函数:设计与声明

条款18: 争取使类的接口完整并且最小

条款19: 分清成员函数,非成员函数和友元函数

条款20: 避免public接口出现数据成员

条款21: 尽可能使用const

条款22: 尽量用“传引用”而不用“传值”

条款23: 必须返回一个对象时不要试图返回一个引用

条款24: 在函数重载和设定参数缺省值间慎重选择

条款25: 避免对指针和数字类型重载

条款26: 当心潜在的二义性

条款27: 如果不想使用隐式生成的函数就要显式地禁止它

条款28: 划分全局名字空间

第五章 类和函数: 实现

条款29: 避免返回内部数据的句柄

条款30: 避免这样的成员函数:其返回值是指向成员的非const指针或引用,但成员的访问级比这个函数要低

条款31: 千万不要返回局部对象的引用,也不要返回函数内部用new初始化的指针的引用

条款32: 尽可能地推迟变量的定义

条款33: 明智地使用内联

条款34: 将文件间的编译依赖性降至最低

第六章 继承和面向对象设计

条款35: 使公有继承体现 "是一个" 的含义

条款36: 区分接口继承和实现继承

条款37: 决不要重新定义继承而来的非虚函数

条款38: 决不要重新定义继承而来的缺省参数值

条款39: 避免 "向下转换" 继承层次

条款40: 通过分层来体现 "有一个" 或 "用...来实现"

条款41: 区分继承和模板

条款42: 明智地使用私有继承

条款43: 明智地使用多继承

条款44: 说你想说的;理解你所说的

第七章 杂项

条款45: 弄清C++在幕后为你所写、所调用的函数

条款46: 宁可编译和链接时出错,也不要运行时出错

条款47: 确保非局部静态对象在使用前被初始化

条款48: 重视编译器警告

条款49: 熟悉标准库

条款50: 提高对C++的认识

Effective C++ 的52个条款列表相关推荐

  1. 《Effective Modern C++》翻译--条款4:了解怎样查看推导出的类型

    条款4:了解怎样查看推导出的类型 那些想要了解编译器怎样推导出的类型的人通常分为两个阵营. 第一种阵营是实用主义者.他们的动力通常来自于编敲代码过程中(比如他们还在调试解决中),他们利用编译器进行寻找 ...

  2. 爬虫 - 抓取52论坛帖子列表

    1. 前言 这两周稍微得了点空闲,又对爬虫有相当兴趣,PythonPycharm都是现成的,说干就干. 从需求出发,起初是想做个爬图的程序,下点动漫美图什么的,非常实用.网站和图片URL都抓好了,结果 ...

  3. 《Effective C++》学习笔记——条款26

    ***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...

  4. Effective C++ 小笔记:条款13-17(第三章)

    常用的资源有:内存.文件描述器(file descriptor).互斥锁(mutex locks).图形界面中的字体和笔刷.数据库连接.以及网络sockets.这些资源一般动态创建和分配,也就是一个指 ...

  5. [Effective C++读书笔记]005_条款05_了解C++默默编写并调用哪些函数

    其实这一点在C++的基础类入门书,如C++ primer里面也有说过,不过很少有人去注意而已,作者把这一点提出来,是为了提醒我们. 这一条款的内容如下:就是说当你书写下面的[代码片段1]的时候,其实经 ...

  6. Effective Modern C++翻译(3)-条款2:明白auto类型推导

    条款2 明白auto类型推导 如果你已经读完了条款1中有关模板类型推导的内容,那么你几乎已经知道了所有关于auto类型推导的事情,因为除了一个古怪的例外,auto的类型推导规则和模板的类型推导规则是一 ...

  7. 《Effective Modern C++》翻译--条款2: 理解auto自动类型推导

    条款2: 理解auto自动类型推导 如果你已经读过条款1关于模板类型推导的内容,那么你几乎已经知道了关于auto类型推导的全部.至于为什么auto类型推导就是模板类型推导只有一个地方感到好奇.那是什么 ...

  8. 《Effective C++》学习笔记——条款45

    七.模板与泛型编程 条款45:运用成员函数模板接受所有兼容类型 让智能指针隐式转换 智能指针: 它是"行为像指针"的对象,并提供指针没有的机能. 真实指针的优点: 支持隐式转换,比 ...

  9. effective c++阅读之旅---条款6

    条款6:若不想使用编译器自动生成的函数,就该明确拒绝 若我们需要如下需求: 地产中介商会认位自己卖的房子是独一无二的,无法复制的 class HomeForSale{};HomeForSale h1; ...

最新文章

  1. Python介绍以及Python 优缺点
  2. 《交互式程序设计 第2版》一2.7 作用域
  3. BZOJ 4734 UOJ #269 如何优雅地求和 (多项式)
  4. 远见卓识,领导力在于把握企业潮流
  5. C语言试题七十二之请编写函数判断三角形的类型,并输出其面积和类型。
  6. php编译时出错make: *** [libphp5.la] Error 1
  7. php 监控nginx日志,nginx启用status监控服务器状态的方法详解
  8. Service onStartCommand 返回值
  9. 如何将本地项目上传到码云
  10. 哪几款车型?适合狮子座的车友?
  11. 软件企业软件产品税收优惠政策
  12. 【Linux】【开发环境】【RHEL】开发环境搭建系列之四——安装daytime服务
  13. php路由固件升级提示,【2017年整理】路由器固件修改教程(个人理解)-无线路由区-中国无线论坛 -.doc...
  14. html导航页面滚动,可通过导航视图精确滚动页面内容的js插件
  15. iOS开发 关于iPhone X 的适配
  16. RL02: Q-Learning, create an autonomous Taxi (Part 2/2)
  17. 用结构体指针访问结构体中的结构体指针(结构体指针的嵌套)
  18. 品质网络的迭变之路,以及运营商的未来之匙
  19. TensorFlow实战系列11--卷积层网络结构
  20. Oracle的启动与停止(三个启动阶段和四种停库模式)

热门文章

  1. 专访元知科技崔兴龙:这位十几年前就在做AI研究的“谷歌老兵”,现在已经把AI用在了12个赛道上...
  2. Android进阶(六)Binder机制
  3. 数据传输流程和socket简单操作
  4. 电信运营商 IT 系统介绍
  5. Python使用MySQL数据库(新)
  6. 上传一份个人学习struts2的历程笔记
  7. 制作Windows Server 2008安装启动U盘
  8. oracle archivelog模式与非archivelog模式转换
  9. python 解析XML xml.dom
  10. onethink不能安装到已经存在的数据库中的问题