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更多的东西,所以无论如何值得了解它。
- 0 导读
- 0 导读
- Effective C++ 0导读
- 导读
- 导读
- 导读
- 导读
- 导读
- C++0x导读 - 序言
- Fiori 代码规范0---导读
- 【读书笔记】Effective C++——0 导读
- C++0x导读 - 2.13 常数
- Caffe代码导读(0):路线图
- Caffe代码导读(0):路线图
- 【effective c++读书笔记】【第0章】导读
- Caffe代码导读(0):路线图
- effective C++ 学习 0_导读
- .o0博客导读0o. 1/23/2016最后更新
- 代码覆盖工具Jacoco使用示例及源码分析
- linux系统中的定时任务及延时任务
- Java获取数组组件类型及Array API简单示例
- 利用Matlab绘制图像中的某一行或者某一列的灰度曲线
- 数据库左右外连接与mapper.xml注意问题
- 0 导读
- highcharts绘制3D图表
- 栈和队列的应用相关习题及详解 ——数据结构
- 笑脸图
- SVN仓库迁移
- Android studio升级3.0,提示“Error:Cannot choose between the following configurations of project”错误
- web前端架构师的能力问题
- kafka是什么
- FastLink