标签:
const在四种方案如以下:
int b = 500; const int *a = &b; ①(底层const) int const *a = &b; ②(底层const) int *const a = &b; ③(顶层const) const int *const a = &b; ④(靠右的是顶层const。靠左的是底层const)
int b = 500; const int *a = &b; //*a = 600; 错误,可是*a的值能够通过其它的途径改动,其一为: b = 600;//如今*a的值为600 cout << *a << endl; 其二为: int c = 600; a = &c;//如今*a的值为600 cout << *a << endl; 这样的情况能够先不进行初始化
第三种情况为指针本身为常量,这样的情况下不能对指针本身进行更改操作,而指针所指向的内容不是常量,这样的情况必须初始化。
//int *const a; 错误,必须初始化 int b = 500, c = 600; int *const a = &b; *a = 600; //cout << a++ << endl;错误
//=============================================================================================================================
再看看const成员函数:
可在不改变对象的成员函数的函数原型中加上const;
class Point { int xVal, yVal; public: int GetY() const; }; int Point::GetY() const { return yVal; }
版权声明:本文博客原创文章。博客,未经同意,不得转载。
标签:
原文地址:http://www.cnblogs.com/hrhguanli/p/4613758.html