0 导读

来源:互联网 发布:汇编怎么写网络程序 编辑:程序博客网 时间:2024/05/16 15:24

  本书的最佳用途就是彻底了解C++如何行为、为什么那样行为,以及如何运用行为形成优势。盲目应用书中条款是非常不合适的。如果没有好理由,你或许不该违反任何一个条款。
  

术语

  所谓声明式(declaration)是告诉编译器某个东西的名称和类型(type),但略去细节。
  每个函数的声明揭示其签名式(signature),也就是参数和返回类型。一个函数的签名等同于该函数的类型。
  定义式(definition)的任务是提供编译器一些声明式所遗漏的细节。对对象而言,定义式式编译器为此对象拔发内存的地点。对function 或function template而言,定义式提供了代码的本体。对class或class template而言,定义式列出了它们的成员。
  初始化(Initialization)是“给予对象初值”的过程。对用户自定义类型的对象而言,初始化由构造函数执行。所谓default构造函数是一个可被调用而不带任何实参者。这样的构造函数要不没有参数,要不就是每个参数都有缺省值。构造函数声明为explicit,可阻止它们被用来执行隐式类型转换。被声明为explicit的构造函数通常比non-explici兄弟更受欢迎,因为它们禁止编译执行非预期(往往也不被期望)的类型转换。
  copy构造函数被用来“以同型对象初始化自我对象”,copy assignment操作符被用来“从另一个同型对象中拷贝其值到自我对象”。
  

class Widget{public :    Widget();//default构造函数    Widget(const Widget& rhs);//copy构造函数    Widget& operator=(const Widget& rhs);//copy assignment操作符};Widget w1;//调用default构造函数Widget w2(w1);//调用copy构造函数w1 = w2;//调用copy assignment操作符Widget w3 = w2;//调用copy构造函数

  STL是所谓标准模板库(Standard Template Library),是C++标准程序库的一部分,致力于容器、迭代器、算法及相关机能。
  所谓客户(client)是指某人或某物,他使用你写的代码(通常是一些接口)。函数的客户是指其使用者,也就是程序中调用函数(或取其地址)的那一部风,也可以说是编写并维护那些代码的人。Class或template的客户则是指程序中使用class或template的那一部分,也可以说是编写并维护那些代码的人。
  当我在程序批注中提到构造函数和析构函数是时,有时会使用缩写字ctor和dtor。
  

命名习惯

  我最喜爱的两个参数名称lhs和rhs分别代表“left-hand side”(左手端)和“right-hand side”(右手端)
  常将“指向一个T型对象”的指针命名为pt,意思是“pointer to T”。
  对于references有类似习惯:rw可能是个reference to Widget,ra 则是个reference toAirplane。
  当讨论成员函数时,偶尔会以 mf为名。

关于线程(Threading Consideration)

TR1 和Boost

  TR1(“Technical Report 1”)是一份规范,描述加入C++标准程序库的诸多新机能。这些机能以新的class template 和function template形式体现,针对的题目有hash tables,reference-counting smart pointers, regular expressions,以及更多。所有TR1组件都被置于命名空间tr1内,后者嵌套于命名空间std内。
  Boost是个组织,亦是一个网站(http://boost.org),提供可移植、同僚复审、源代码开放的C++程序库。大多数TR1机能是以Boost的工作为基础。在编译器厂商与其C++程序库中含入TR1之前,对那些搜寻TR1实现品的开发人员而言,Boost网站可能是第一个逗留点。Boost提供比TR1更多的东西,所以无论如何值得了解它。