Effective C++ chapter1:Accustiming Yourself to C++

Item 1:View C++ as a federation of languages

  • 单词
    • sublanguage:子语言
    • Exception:异常
    • template:模板
    • procedual:过程
    • object-oriented:面向对象
    • generic:泛型
    • blocks:区块{   }
    • statement:语句
    • overloading:重载
    • paradigm:泛型,模板
    • convention:规定  
    • encapsulation:封装
    • inheritance:封装
    • polymorphism:多态
    • virtual:虚
    • container:容器
    • iterators:迭代器
    • algorithm:算法
  •  摘要:
    •  C++可以视为由相关语言组成的联邦而非单一语言,可以以下次语言组成
      •   C:语句块,语句,内置类型,指针等等
      •        Oriented_Objected C++:类,封装,继承,多态,虚函数
      •   Template C++:泛型编程
      •        STL:STL是template程序库,容器,迭代器,算法   

Item2:Prefers consts,enums,and inlines to #define 

  • 单词:
    • macro 宏
    • object code 目标码
    • scope 作用域
    • encapsulated 封装
  • 摘要:
    •   对于常量,尽量用const而不是宏
      • 当出现错误提示时,错误不会显示宏的名字而是代表的常量,不容易发现问题
      • 宏可能会造成编译器对常量的多份拷贝
      • 相比const没有作用域,也缺少封装
    •   对于函数,尽量用内敛函数而不是宏
      •   宏可能会引起歧义

Item3:Use const whenever possible

  • 单词
    • constraint 约束
    • asterisk 星号
    • iterator 迭代器
    • modeled 仿照
    • invoke 调用
    • violation 违反
    • client 用户
    • duplication 复制
    • cast转型

 

  • 摘要
    • 声明const可以帮助编辑器检测出错误用法
    • return 对象by value 意思数据的一份copy
  • 备注
    • bitwise constness和const和non_const之间的调用看的我有点迷呀!

Item4:Make sure that objects are initialized before they're used.

  • 单词  
    • manually 手动
    • member initialization list 成员初始化列表
    • directory 目录
    • exclude 排除
  • 摘要
    • 在声明变量x时,有些语境会初始化为0,有的语境不会初始化,所以需要手动初始化
    • 在调用构造函数时,使用初始化列表比赋值要效率高,赋值可以看成两个操作,第一步调用构造函数,第二步进行赋值,如果使用初始化列表,则会把第二步省去。
    • 注意初始化的顺序,non_local static对象的初始化相对次序无明确定义
  • 备注
    • 需要注意的是变量声明时要初始化,特别是指针
    • 构造函数里,初始化列表要初始化所有的属性。    
posted @ 2018-01-31 21:04  peng_blog  阅读(246)  评论(0编辑  收藏  举报