Effective C++阅读小记(更新)

Effective C++阅读小记

导读

1.C/C++中关键字extern

基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。
摘要:https://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html

extern "C" void fun(int a, int b);

告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名。

extern int g_Int; 

声明函数或全局变量的作用范围的关键字,其声明的函数和变量可以在本模块活其他模块中使用。

2.标准C库中的size_t (类似于unsigned int

基本解释:size_t 类型定义在cstddef头文件中,该文件是C标准库的头文件stddef.h的C++版。它是一个与机器相关的unsigned类型,其大小足以保证存储内存中对象的大小。
摘要:https://baike.baidu.com/item/size_t

size_t只是一个typedef,是C++计算个数(例如字符串内的char*-based字符个数或STL容器内的元素个数等等)时用的某种不带正负号unsigned类型。

3.术语

签名式:每个函数的声明揭示其签名式(signature),也就是参数和返回类型。一个函数的签名等同于该函数的类型。

定义式:定义式(definition)的任务是提供编译器一些声明式所遗漏的细节。对对象而言,定义式是编译器为此对象拨发内存的地点。

初始化:初始化(Initialization)是“给予对象初值”的过程。对用户自定义类型的对象而言,初始化由构造函数执行。所谓default构造函数是一个可被调用而不带任何实参者。

explicit:被声明为explicit的构造函数通常比其non-explici兄弟更受欢迎,因为它们禁止编译器执行非预期(往往不被期望)的类型转换。
除非允许构造函数被用于隐式类型转换,否则就把它声明为explicit

拷贝构造函数:以同型对象初始化自我对象。
拷贝操作符:从另一个同型对象中拷贝其值到自我对象。

bool test(Widget w);
...
Widget aWidget;
if (test(aWidget)) ...

这个复制动作由Widget的构造函数完成。Pass-by-value意味“调用拷贝构造函数”。
Pass-by-reference-to-const往往是比较好的选择。

4.命名习惯

常用:

1.lhs: left-hand side 左手端
2.rhs: right-hand side 右手端
3.pt: pointer to T 指向一个T型对象
4.rw: reference to Widget
如上类似的命名习惯。

5.关于线程

有线程概念的程序员是更有竞争力的。
线程安全性是许多程序员面对的主题。

6.TR1和Boost

TR1:是一份规范,描述加入C++标准程序库的诸多新技能。
Boost: 是个组织,亦是一个网站(http://boost.org),提供可移植、同僚复查、源代码开放的C++程序库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值