C++程序员必经之路 —— const指针
来源:互联网 发布:惠众金融网络借贷 编辑:程序博客网 时间:2024/05/22 15:05
【本文内容转自:http://www.cnblogs.com/frustrate2/archive/2013/01/12/2857434.html】
声明指针时,可以在类型前或后使用关键字const,也可在两个位置都使用。例如,下面都是合法的声明,但是含义大不同:
const int * pOne; //指向整形常量 的指针,它指向的值不能修改
int * const pTwo; //指向整形的常量指针 ,它不能在指向别的变量,但指向(变量)的值可以修改。
const int *const pThree; //指向整形常量 的常量指针 。它既不能再指向别的常量,指向的值也不能修改。
理解这些声明的技巧在于,查看关键字const右边来确定什么被声明为常量 ,如果该关键字的右边是类型,则值是常量;如果关键字的右边是指针变量,则指针本身是常量。下面的代码有助于说明这一点:
const int *p1; //the int pointed to is constant
int * const p2; // p2 is constant, it can't point to anything else
const指针和const成员函数
可以将关键字用于成员函数。例如:
class Rectangle
{
pubilc:
.....
void SetLength(int length){itslength = length;}
int GetLength() const {return itslength;} //成员函数声明为常量
.....
private:
int itslength;
int itswidth;
};
当成员函数被声明为const时,如果试图修改对象的数据,编译器将视为错误。
如果声明了一个指向const对象的指针,则通过该指针只能调用const方法(成员函数)。
示例声明三个不同的Rectangle对象:
Rectangle* pRect = new Rectangle;
const Rectangle * pConstRect = new Rectangle; //指向const对象
Rectangle* const pConstPtr = new Rectangle;
pConstRect是指向const对象的指针,它只能使用声明为const的成员函数,如GetLength()。
const this 指针
将对象说明为const时,相当于该对象的this指针声明为一个指向const对象的指针。const this指针只能用来调用const成员函数。
如果对象不应被修改,则按引用传递它时应使用const进行保护。
务必将指针设置为空,而不要让它未被初始化(悬浮)
- C++程序员必经之路 —— const指针
- C++程序员必经之路——悬垂指针与野指针
- C++ 程序员必经之路 —— 堆、栈
- 黑马程序员———C语言———【函数指针、指针函数、野指针、内存管理、const关键字】
- C++——const关键字和指针
- <C语言>特殊指针——const指针、void指针、NULL指针、零指针、野指针
- C++ 程序员必经之路 —— 构造、析构、虚析构
- C++程序员必经之路——函数调用过程【转载】
- 程序员必经之路
- c和指针——指针和const
- C语言之知识点总结——const指针
- C语言const与指针——为什么不能用char **给const char **赋值
- c++const指针
- C中指针const
- C++:const与指针
- C++:const和指针
- 【C和指针】const指针
- 黑马程序员——C语言指针
- iOS安全攻防:Fishhook、数据保护API以及基于脚本实现动态库注入
- 了解Python字典的copy
- TopCoder SRM 610: The Matrix 区分现实与梦境的棋盘
- C#MessageBox使用总结
- 浏览器兼容:Web标准化建站(DIV+CSS)的常见问题解决方法
- C++程序员必经之路 —— const指针
- 现实大于爱情,时间泯灭一切!
- javacsv导出csv
- Android数据库查看
- duilib进阶教程 -- 改进List控件(3)_支持多选+右键菜单(ctrl,shift, 鼠标滑动框选)
- iOS安全攻防
- 恒大宣布续约里皮三年 推霸气海报欲造大时代
- Mozilla联手黑莓推进Web安全技术,推出开源测试平台Minion
- VLC播放RTP PS 流的方法