Effective C++
zhanghuanzj
这个作者很懒,什么都没留下…
展开
-
1.让自己习惯C++
Item01:View C++ as a federation of language.c语言(无异常,无重载…)object-oriented C++Template C++STL Item02:Prefer consts,enums,and inlines to #defineconst有类型检测,而#define不会进入符号表,出错不容易调试enums可以作为类中开辟数组大小的专原创 2016-03-06 22:39:30 · 355 阅读 · 0 评论 -
3.资源管理
Item13:Use objects to manage resources.RAII(Resource Acquisition Is Initialization):资源获取时便是初始化时。Item14:Think carefully about copying behavior in resource-managing.shared_ptr使用注意点: 当处理Mutex互斥器对象时,有lock原创 2016-03-08 21:33:19 · 335 阅读 · 0 评论 -
4.设计与声明
Item18:Make interfaces easy to use correctly and hard to use incorrectly.shared_ptr定制删除器可以防范DLL问题(对象在一个DLL中创建,却在另一个DLL中销毁),自动解除互斥锁等。Item19:Treat class design as type desing.Item20:Prefer pass-by-refere原创 2016-03-12 21:08:47 · 326 阅读 · 0 评论 -
5.实现
Item26:Postpone variable definitions as long as possible.Item27:Minimize casting.①static_cast: 可转换底层const,父与子指针互相转换无类型检查A *p;static_cast<const A*>(p);②const_cast:可去除底层const,使所指对象可变const A *cp;const_c原创 2016-03-12 21:21:30 · 304 阅读 · 0 评论 -
6.继承与面向对象设计
Item32:Make sure public inheritance “is-a”.Item33:Avoid hiding inherited names.Item34:Differentiate between inheritance of interface and inheritance of implementation.①纯虚函数:只继承接口(也可以在类外定义)让Derived clas原创 2016-03-12 21:39:01 · 354 阅读 · 0 评论 -
7.模板与泛型编程
Item41:Understanding implicit interfaces and compile-time polymorphism.编译期多态:模板根据类型实例化,发生在编译期,类似确定哪一个重载函数被调用。 运行期多态:运行时决定那个一个virtual函数被调用。Item42:Understand the two meanings of typename.typename用于标识嵌套从原创 2016-03-12 22:06:46 · 495 阅读 · 0 评论 -
8.定制new和delete
Item49:Understand the behavior of the new-handler.set_new_handler允许客户指定一个函数,在内存无法获得满足时调用。Item50:Understand when it makes sense to replace new and delete.当需要改善效能,对heap运用错误进行调试,收集heap使用信息时。Item51:Adhere原创 2016-03-12 22:19:29 · 328 阅读 · 0 评论 -
2.构造/析构/赋值运算
Item05:Konw what functions C++ silently writes and calls 编译器可以暗自为class创建default构造函数,copy构造函数,copy assignment操作符,移动构造函数,移动赋值运算符(C++11)。Item06:Explicitly disallow the use of compiler-generated functions原创 2016-03-07 21:27:30 · 332 阅读 · 0 评论