tip 3 如果const在*左边,被指物是常量,如果在右边,指针为常量。
tip 6
不可复制类实现,拷贝构造函数赋值函数声明为private,不提供实现。
class nocopy
{
public:
protected:
nocopy() {}
~nocopy() {}
private:
nocopy(const nocopy&);
nocopy& operator=(const nocopy&);
}
tip 7
多态基类声明virtual析构函数,非基类的类型则不需要。
虚函数由vptr实现,函数指针构成的数组,每一个有virtual函数的类都有一个。
tip8
析构函数不抛出异常
tip 27
const_cast移除常量性
dynamic_cast 安全向下转型
reinterpret_cast低级转型,eg pointer to int ->int
static_cast 强迫隐式转换
tip28
不要返回句柄指向类成员,防止悬垂指针。
tip 36,37
不重新定义继承来的非虚函数以及缺省参数值
tip 42
想要在template中指涉从属类型名,必须放置typename关键字
eg:
template<typename C>
void print2(const C& container)
{
if(container.size > 0)
{
C::const_iterator iter(container.begin());
....
}
}