全部博文(2759)
分类: C/C++
2013-10-01 11:23:12
原文地址:OOP草稿整理 作者:HappyAndrew
不要重复造轮子,将重复的代码封闭成函数。
一个对象应该在其构造时获取资源,在对象生命期控制对资源的访问使之始终保持有效,最后在超出对象生命周期时由析构候释放资源。目的是对于异常退出情况是安全的。如:auto_ptr, scoped_ptr,shared_ptr.
优点:
· 防止资源用完后不被释放。
· 减少代码量。
要找到适合的方案,不能做一个workaround交差。
只实现你需要的,对一些将来都不需要的东西不要实现。
As Charles Petzold puts it, "Three or more? use a for!“ 又叫重复造轮子。当一段代码被重复利用三次时,应该将其封装到函数里。
重复写代码的缺点:
· 增加维护的成本。
Big Three: destructor, copy constructor, assign operator这三个函数有一个存在其他2个也应该存在。
E.g.
To check whether a value exists in a map, use map::count instead of for(…)
A unary function is a function that takes one argument.
a binary function is a function which takes two inputs.
bind1st: This function constructs an unary function object from the binary function object op by binding its first parameter to the fixed value.
bind2nd: To bind the second parameter to a specific value.
Pure function is a pointer and pointers are always evil.
Function object is a object that behaves like function, that’s what we want
点击(此处)折叠或打开
点击(此处)折叠或打开
scoped_ptr
所有智能指针都称为 ?The Safe Bool Idiom”. 参见: