条款3:尽可能使用const
const提供一个语义约束,指定一个“不该被改动的对象”,而编译器会强制实施这项约束。
指出指针自身、指针所指物、或者两者都不是const:
char greeting[] = "hello";
char* p = greeting; //non-cost pointer,non-const data
const char* p = greeting; //non-cost pointer,const data
char* const p = greeting; //cost pointer,non-const data
const char* const p = greeting; //cost pointer,const data
如果关键字const出现在星号左边,表示被指物是常量;如果出现在星号右边,表示指针自身是常量;如果出现在星号两边,表示都是
如果是被指物,以下两种写法意义相同。
void f1(const Widget* pw);
void f2(Widget const * pw);
…抱歉STL迭代器还没有学过,以下部分稍后再补充!!!