摘要: 1. inline函数既和带参宏一样不带来函数调用的额外开销,又具有和非inline函数相同的功能,也就是说,inline函数同时具备带参宏和非inline函数的优点. 此外,编译器优化机制通常针对于那些不含参数调用的代码,因此inline某个函数就有可能使编译器对它执行语句相关最优化.2. 虽然... 阅读全文
posted @ 2015-09-01 23:04 Reasno 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 1.当异常被抛出时,"异常安全"函数有两个条件: 不泄露任何资源:从堆中申请的资源应该确保被释放 不允许数据败坏:函数不能对数据修改到一半而抛出异常以致数据被破坏. 解决"不泄露任何资源"很容易,只要使用资源管理类(如shared_ptr,见条款13)即可,"不允许数据败坏"是主要考虑的问题.... 阅读全文
posted @ 2015-09-01 17:25 Reasno 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 1. 所谓的handles指的是引用,指针,迭代器(可能与windows的句柄有所区别),返回一个handles会导致提供给用户对象内部数据的间接访问,这降低了成员变量的封装性,例如:class Demo{public: ... int* getPtr() const { ... 阅读全文
posted @ 2015-09-01 00:33 Reasno 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 1. 转型语法有三种,C风格转型:(T)expression函数风格转型:T(expression)两种方式除了小括号位置不同没有差别,可以称为"旧式转型".C++提供四种新式转型: const_cast(expression): 将const变量引用或指针转为非const引用或指针,移除变量的常... 阅读全文
posted @ 2015-09-01 00:11 Reasno 阅读(311) 评论(0) 推荐(0) 编辑