[读书笔记] Effective C++
部分条款过于深奥,部分条款已了然于心,仅记录当下所识所学
条款02:尽量以const,enum,inline替换#define
对于常量宏定义,最好用const代替#define
对于函数宏定义,最好用inline代替#define
#include、#ifdef、#ifndef仍被需要
条款03:尽可能使用const -*
条款04:确定对象被使用前已先被初始化
内置对象记得手动初始化
使用成员初始列替换赋值操作
以local static替换non-local static 单例模式
条款07:为多态基类声明virtual析构函数
任何class只要有virtual函数都几乎确定应该也有一个virtual析构函数
只有当class内含至少一个virtual函数,才为它声明virtual析构函数
条款13:以对象管理资源
这样可以保证资源“在构造期间获得,在析构期间释放”
条款20:宁以pass-by-refrence-to-const 替换pass-by-value
以上规则并不适用内置类型、STL的迭代器和函数对象
条款26:尽可能延后变量定义式的出现时间
条款36:绝不重新定义继承而来的non-virtual函数
关于template编程和template元编程的内容暂留
[读书笔记] Effective C++相关推荐
- [读书笔记]Effective C++ - Scott Meyers
[读书笔记]Effective C++ - Scott Meyers 条款01:视C++为一个语言联邦 C++四个次语言: 1. C Part-of-C++,没有模板.异常.重载. 2. Object ...
- 读书笔记-effective STL
目录: 1.vector,string 2迭代器 3.关联容器 4.容器 自己补充的关于stl的一点内容 5.stl中的排序 6.删除stl容器元素的方法 1.vector,string vector ...
- 读书笔记 effective c++ Item 5 了解c++默认生成并调用的函数
1 编译器会默认生成哪些函数 什么时候空类不再是一个空类?答案是用c++处理的空类.如果你自己不声明,编译器会为你声明它们自己版本的拷贝构造函数,拷贝赋值运算符和析构函数,如果你一个构造函数都没有声 ...
- 读书笔记 effective c++ Item 50 了解何时替换new和delete 是有意义的
1. 自定义new和delete的三个常见原因 我们先回顾一下基本原理.为什么人们一开始就想去替换编译器提供的operator new和operator delete版本?有三个最常见的原因: 为了检 ...
- 读书笔记 effective c++ Item 49 理解new-handler的行为
1. new-handler介绍 当操作符new不能满足内存分配请求的时候,它就会抛出异常.很久之前,它会返回一个null指针,一些旧的编译器仍然会这么做.你仍然会看到这种旧行为,但是我会把关于它的讨 ...
- 读书笔记 effective c++ Item 18 使接口容易被正确使用,不容易被误用
1. 什么样的接口才是好的接口 C++中充斥着接口:函数接口,类接口,模板接口.每个接口都是客户同你的代码进行交互的一种方法.假设你正在面对的是一些"讲道理"的人员,这些客户尝试把 ...
- 读书笔记 Effective C++: 02 构造析构赋值运算
条款05:了解C++默认编写并调用的哪些函数 编译器会为class创建: 1. default构造函数(前提是:没有定义任何构造函数): 如果已经声明了一个构造函数,编译器就不会再创建default构 ...
- 读书笔记 effective c++ Item 16 成对使用new和delete时要用相同的形式
1. 一个错误释放内存的例子 下面的场景会有什么错? 1 std::string *stringArray = new std::string[100]; 2 3 ... 4 5 delete str ...
- [读书笔记]Effective Java 第四章
使类和成员的可访问性最小化 规则很简单:尽可能地使每个类或者成员不被外界访问.实例域(非final)决不能是公有的.当需要暴露出不可变的实例时通常会把这个实例做成不可变或者是把这个实例变成私有,同时提 ...
最新文章
- UIAutomatorViewer、Inspector获取元素信息
- Packet Tracer 5.0配置cisco路由器详细说明
- 能量分析攻击day01
- java int与integer的区别
- 极简实用的Asp.NetCore模块化框架决定免费开源了
- python pandas csv 追加 空行,python – Pandas:read_csv在空行后忽略行
- 【原创】关于移动铁通某些网站打不开的问题
- Android项目中,在一个数据库里建立多张表
- Nature methods | Alevin-fry, 一种高效准确的单细胞测序数据预处理工具
- 一本关于HTTP的恋爱日记
- VMware vSAN性能测试那点后续的事
- C/C++线程与多线程工作笔记0005---c/c++中的wchar_t类型
- hex转换成C语言源程序吗,第6节:把.c源代码编译成.hex机器码的操作流程
- Bootstrap 滚动监听(Scrollspy)插件
- Cisco 静态nat配置
- 4.ES 相关插件安装
- 2.Zabbix企业级分布式监控系统 --- Zabbix 简介
- 扬州大学c语言上机作业答案,扬州大学C语言上机作业1-9整理
- Java 文件读写示例1
- Android OAID 获取 基于MSA oaid_sdk_1.0.25.zip
热门文章
- 上传附件_留学落户|上传附件预审时一定一定要注意的问题!
- 《零基础》MySQL 数据类型(八)
- echarts数据怎么赋值 vue_vue中 怎么把echarts中data的数据循环
- java线程池执行器_Java线程池ThreadPoolExecutor的使用
- 目标检测_目标检测: AnchorFree 时代
- easypoi list中的map导出_如何优雅的导出 Excel
- 负载均衡策略_常见的负载均衡策略
- 比亚迪后续车都会搭在鸿蒙系统吗_华为鸿蒙系统上车,比亚迪汉发布!我告诉你华为鸿蒙到底是什么...
- Fiddler在PC/台式对Android进行抓包
- pageContext对象