1、视C++为一个语言联邦
    C、object-oriented C++、template C++、STL
2、尽可能使用const:
    1)关键字const出现的星号左边,表示被指物事常量;如果出现在星号右边,表示指针自身是常量;如果出现在两边,表示被指物和指针都是常量。
    2)stl迭代器中申明迭代器为const就像申明指针为const一样,表示这个迭代器不得指向不同的东西,但他所指向的东西的值是可以改动的。如果希望所指的东西不可被改动,你需要的是const  iterator。
    3)const成员函数:两个成员函数如果只是常量性不同,可以被重载。如果一个函数的返回类型是个内置类型,那么改动函数返回值从来就不合法。
    4)在const和non-const成员函数中避免重复:第一次这里将*this从其原始类型转为const类型。第二次则是从const operator    []的返回值中移除const。添加const的那次强迫进行了一次安全转型,使用static_cast。移除const的那个动作只可以藉由const_cast完成,没有其他选择。const成员函数调用non_const成员函数是一种错误行为,因为对象有可能因此被改动。
            const char & operator[]()const
            {}
            char & operator[]
            {
                return
                      const_cast<char&>(static_cast<const textblock&>(*this)[position])
            }
请记住:将某些东西申明为const对象可以帮助编译器查找出错误。const可被施加于任何作用于内对象、函数参数、函数返回类型、成员函数本体;当const和non_const成员函数有这实质等价的实现时,令non_const版本调用const版本可避免代码重复。
3、确定对象被使用前已先被初始化
    1)为内置型对象进行手工初始化,因为C++不摆正初始化他们
    2)构造函数最好使用成员初值列,而不要在构造函数本体内使用赋值操作。初值列列出的成员变量,其排列次序和他们在class中申明的次序相同
    3)为免除“跨编译单元之初始化问题”,请以local static对象替换non-local static对象。
4、了解C++默默编写并调用那些函数
    编译器可以暗自为class创建default构造函数、copy构造函数、copy assignment操作符、以及析构函数
5、若不想用编译器自动生成的函数,就该明确拒绝(接4)
    为驳回编译器自动提供的机能,例如copy构造函数、copy assignment操作符等,可将相应的成员函数申明为private并且不予实现。使用像uncopyable这样的base class也是一种方法。
6、为多态基类填加virtual析构函数

polymorphic带多态性质的,base class 应该申明一个virtual析构函数 。如果class带有任何virtual的函数,他就应该拥有一个virtual析构函数;classes的设计目的如果不是为了base class 使用,或不是为了具备多态性,就不该声明virtual析构函数.

Effective c++读书笔记的更多相关文章

  1. Effective STL 读书笔记

    Effective STL 读书笔记 标签(空格分隔): 未分类 慎重选择容器类型 标准STL序列容器: vector.string.deque和list(双向列表). 标准STL管理容器: set. ...

  2. Effective STL读书笔记

    Effective STL 读书笔记 本篇文字用于总结在阅读<Effective STL>时的笔记心得,只记录书上描写的,但自己尚未熟练掌握的知识点,不记录通用.常识类的知识点. STL按 ...

  3. effective c++读书笔记(一)

    很早之前就听过这本书,找工作之前读一读.看了几页,个人感觉实在是生涩难懂,非常不符合中国人的思维方式.之前也有博主做过笔记,我来补充一些自己的理解. 我看有人记了笔记,还不错:http://www.3 ...

  4. Effective Java读书笔记完结啦

    Effective Java是一本经典的书, 很实用的Java进阶读物, 提供了各个方面的best practices. 最近终于做完了Effective Java的读书笔记, 发布出来与大家共享. ...

  5. Effective java读书笔记

    2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己 计在16年要看12本书,主要涉及java基础.Spring研究.java并发.J ...

  6. Effective Objective-C 读书笔记

    一本不错的书,给出了52条建议来优化程序的性能,对初学者有不错的指导作用,但是对高级阶段的程序员可能帮助不是很大.这里贴出部分笔记: 第2条: 使用#improt导入头文件会把头文件的内容全部暴露到目 ...

  7. 【Effective C++读书笔记】序

    C++ 是一个难学易用的语言! [C++为什么难学?] C++的难学,不仅在其广博的语法,以及语法背后的语义,以及语义背后的深层思维,以及深层思维背后的对象模型: C++的难学还在于它提供了四种不同而 ...

  8. Effective Java 读书笔记(一):使用静态工厂方法代替构造器

    这是Effective Java第2章提出的第一条建议: 考虑用静态工厂方法代替构造器 此处的静态工厂方法并不是设计模式,主要指static修饰的静态方法,关于static的说明可以参考之前的博文&l ...

  9. Effective C++读书笔记(转)

    第一部分 让自己习惯C++ 条款01:视C++为一个语言联邦 一.要点 ■ c++高效编程守则视状况而变化,取决于你使用c++的哪一部分. 二.扩展 将c++视为一个由相关语言组成的联邦而非单一语言会 ...

  10. Effective C++ 读书笔记 名博客

    https://www.cnblogs.com/harlanc/tag/effective%20c%2B%2B/default.html?page=3

随机推荐

  1. android 获取屏幕宽度和高度

    // 获取屏幕宽高(方法1) int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 屏幕宽(像素,如:480p ...

  2. Android-异步任务-AsyncTask

    什么是异步任务? 异步任务就是开一个子线程,然后让它去跑,它跑完了就会回来告诉你说,它跑完了,这是结果.这和Java中的回调差不多.我们在OKHttp中很长见到的 onSuccess() 和 onEr ...

  3. iOS-APNS证书申请与使用

    首先,需要一个pem的证书,该证书需要与开发时签名用的一致. 具体生成pem证书方法如下: 1. 登录到 iPhone Developer Connection Portal(http://devel ...

  4. Nginx配置文件nginx.conf详解

    #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | ...

  5. This build of Sublime Text 2 has expired

    使用一直很好的 sublime 2 最近一直提示: This build of Sublime Text 2 has expired, please update to a newer one fro ...

  6. 《ES6基础教程》之 Call 方法和 Apply 方法

    <script type="text/javascript"> // Call方法: // 语法:call(thisObj[,arg1,arg2,...,argN]) ...

  7. C#中使用Redis不同数据结构的内存占有量的疑问和对比测试

    最近在大量使用Redis来进行数据统计前的清洗和整理,每天的数据量超5千万+,在开发过程中,数据量小,着重注意业务规则的处理,在上线基本测试后发现了大量的问题,其中之一就是Redis存储数据过多,内存 ...

  8. Linux安装Node.js

    安装环境:Ubuntu:x86_64 Node.js 官网:https://nodejs.org 下载Node.js: wget https://nodejs.org/dist/v4.4.3/node ...

  9. C++ 连接数据库的入口和获取列数、数据

    这里不具体放出完整的程序,分享两个核心函数: 由于这里用到的函数是编译器自己的库所没有的,需要自己下载mysql.h库或者本地有数据库,可以去bin找到,放进去. 前提,我自己的测试数据库是WampS ...

  10. objective-c 语法快速过(1)

    有一定 c++或者 java 基础,过一遍 oc 语法即可,都是相通的,个人认为难点是 oc 的内存管理,虽然有了 ARC,但是也需要学习下,因为有旧软件的维护. 建立在C语言的基础上,增加了一层小范 ...