准备
C++基础知识和清晰的头脑
char greeting[] = “Hello”;
char* p = greeting;//non-const pointer, non-const data
const char* p = greeting;//non-const pointer,const data
char* const p = greeting;//const pointer,non const data
const char* const p=greeting;//const pointer,const data
如何看const表示的意思
const在星号左边表示所指变量是常量,const在星号右边表示所指指针自身是常量
void f1(const Widget* pw); //传入指针指向的Widget对象是常量
void f2(Widget const* pw); //传入指针指向的Widget对象是常量
void f3(Widget* const pw); //传入的Widget对象指针是常量
为了防止错误写法,一些有返回值的函数要加上const修饰。比如:
cosnt A operator*(const A& a, const A& b);
在重载函数时最好传递指针或引用过去,我一般比较在意内存空间的消耗,还有需要操作原地址的情况。
在函数后面加const表示函数内任意变量都不能被修改。只能有读的操作
int getValue()const{return m_a;}