Effective C++标题整理
Effective C++
话说光看这50个tip又有什么用呢?只有实际使用的时候才体现它们的价值才对。
就像只看《代码大全》不能成为一个好程序员,必须结合实际写项目经验才行。
从C转向C++
条款1:尽量使用const和inline而不用#define
条款2:尽量用而不用<stdio.h>
条款3:尽量用new和delete而不用molloc和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++标题整理的更多相关文章
- 本科非cs菜鸟计算机面试实录
两年制小硕,本硕期间差不多都打酱油的.本科非cs专业,硕士cs,编程基础一般,专业基础尚可.研究生期间分析分析了pgsql数据库的源码:同时实验室一些杂项目:自己业余为了应试读了些计算机书.自己当时q ...
- Emacs: 设置窗口标题格式
Emacs默认的窗口标题常常比较简单,例如我的默认标题是"emacs@ubuntu".如果想要在标题中显示更多的信息,我们可以对它进行一些设置.由于Emacs的可扩展性,这种修改实 ...
- 《Effective C++》部分内容学习笔记整理
简介 此笔记为<Effective C++>中部分内容的学习笔记. 目录 文档:<Effective C++>
- More Effective C++笔记(一)(精心整理)
一.基础议题 条款1:仔细区别pointers和references 指针使用*和->,引用使用"." 引用必须指向一个已初始化的对象,不能为null,而指针可以指向某个对象 ...
- 《Effective C++》读书摘要
http://www.cnblogs.com/fanzhidongyzby/archive/2012/11/18/2775603.html 1.让自己习惯C++ 条款01:视C++为一个语言联邦 条款 ...
- (zhuan) 126 篇殿堂级深度学习论文分类整理 从入门到应用
126 篇殿堂级深度学习论文分类整理 从入门到应用 | 干货 雷锋网 作者: 三川 2017-03-02 18:40:00 查看源网址 阅读数:66 如果你有非常大的决心从事深度学习,又不想在这一行打 ...
- android 优秀框架整理
程序员界有个神奇的网站,那就是github,这个网站集合了一大批优秀的开源框架,极大地节省了开发者开发的时间,在这里我进行了一下整理,这样可以使我们在使用到时快速的查找到,希望对大家有所帮助! 1. ...
- Effective Objective-C 2.0
Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法 作者:Matt Galloway(英) 译者:爱飞翔 出版社:机械工业出版社 出版年:2014-01 ...
- Effective前端2:优化html标签
div { float: left; } .keyboard > div + div { margin-left: 8px; } --> div{display:table-cell;ve ...
随机推荐
- 获取浏览器弹窗alert、自定义弹窗以及其操作
web自动化测试第10步:获取浏览器弹窗alert.自定义弹窗以及其操作 - CSDN博客 http://blog.csdn.net/ccggaag/article/details/76573857 ...
- iOS中打包.a静态库
1.新建.a静态库工程 需要选择Static Library静态库工程模板新建工程,如下图: 新建静态库工程 实现需要打包的类,如下图: 实现需要打包的类 2.设置需要暴露的头文件 添加Headers ...
- backbone源代码注释(部分)
// Backbone.js 1.0.0 // (c) 2010-2013 Jeremy Ashkenas, DocumentCloud Inc. // Backbone may be freely ...
- POJ1385 Lifting the Stone 多边形重心
POJ1385 给定n个顶点 顺序连成多边形 求重心 n<=1e+6 比较裸的重心问题 没有特别数据 由于答案保留两位小数四舍五入 需要+0.0005消除误差 #include<iostr ...
- 洛谷P1155 双栈排序——思路题
题目:https://www.luogu.org/problemnew/show/P1155 思路... 看博客:https://www.cnblogs.com/Narh/p/9213825.html ...
- 1051 复数乘法(C#)
一.题目内容如下: 复数可以写成 ( 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 1:也可以写成极坐标下的指数形式 (,其中 R 是复数模,P 是辐角,i 是虚数单位,其等价于三角 ...
- c++ rand && srand 函数
RAND: 结构:rand() 注:rand()不需要参数,它会根据种子返回一个从0到最大随机数的任意整数. 作用:生成一个随机数. 头文件:#include <cstdlib> ...
- Linux学习笔记之Linux常用命令剖析-cat/chmod/cd
1.cat:用于连接文件并打印到标准输出设备上.(使用权限:所有使用者) 语法格式:cat [-AbeEnstTuv] [--help] [--version] fileName 参数说明: -n 或 ...
- 基于Web的Kafka管理器工具之Kafka-manager的编译部署详细安装 (支持kafka0.8、0.9和0.10以后版本)(图文详解)(默认端口或任意自定义端口)
不多说,直接上干货! 至于为什么,要写这篇博客以及安装Kafka-manager? 问题详情 无奈于,在kafka里没有一个较好自带的web ui.启动后无法观看,并且不友好.所以,需安装一个第三方的 ...
- [转]MVC之 自定义过滤器(Filter)
本文转自:http://www.cnblogs.com/kissdodog/archive/2013/01/21/2869298.html 一.自定义Filter 自定义Filter需要继承Actio ...