C++指向对象的常指针
2014-12-11 13:46
239 查看
将指针变量声明为const型,这样指针值始终保持为其初值,不能改变。
如:
Time t1(10,12,15),t2; //定义对象
Time * const ptr1; //const位置在指针变量名前面,规定ptr1的值是常值
ptr1=&t1; //ptr1指向对象t1,此后不能再改变指向
ptr1=&t2; //错误,ptr1不能改变指向
定义指向对象的常指针的一般形式为:
类名 * const 指针变量名;
也可以在定义指针变量时使之初始化,如将上面第2, 3行合并为:
Time * const ptr1=&t1; //指定ptr1指向t1
请注意,指向对象的常指针变量的值不能改变,即始终指向同一个对象,但可以改变其所指向对象(如t1)的值。
什么时候需要用指向对象的常指针呢?如果想将一个指针变量固定地与一个对象相联系(即该指针变量始终指向一个对象),可以将它指定为const型指针变量,这样可以防止误操作,增加安全性。
往往用常指针作为函数的形参,目的是不允许在函数执行过程中改变指针变量的值, 使其始终指向原来的对象。如果在函数执行过程中修改了该形参的值,编译系统就会发现错误,给出出错信息,这样比用人工来保证形参值不被修改更可靠。
如:
Time t1(10,12,15),t2; //定义对象
Time * const ptr1; //const位置在指针变量名前面,规定ptr1的值是常值
ptr1=&t1; //ptr1指向对象t1,此后不能再改变指向
ptr1=&t2; //错误,ptr1不能改变指向
定义指向对象的常指针的一般形式为:
类名 * const 指针变量名;
也可以在定义指针变量时使之初始化,如将上面第2, 3行合并为:
Time * const ptr1=&t1; //指定ptr1指向t1
请注意,指向对象的常指针变量的值不能改变,即始终指向同一个对象,但可以改变其所指向对象(如t1)的值。
什么时候需要用指向对象的常指针呢?如果想将一个指针变量固定地与一个对象相联系(即该指针变量始终指向一个对象),可以将它指定为const型指针变量,这样可以防止误操作,增加安全性。
往往用常指针作为函数的形参,目的是不允许在函数执行过程中改变指针变量的值, 使其始终指向原来的对象。如果在函数执行过程中修改了该形参的值,编译系统就会发现错误,给出出错信息,这样比用人工来保证形参值不被修改更可靠。
相关文章推荐
- C++对象指针—指向对象的指针
- C++指向const对象的指针和const指针
- C++ 派生类指针强制指向基类对象
- C++ 基类指针指向派生类对象
- 【c++程序】指向对象的指针
- 【C++】基类指针可以指向派生类对象,派生类指针不可以指向基类对象
- C++ 基类指针指向派生对象/派生类指针指向基类对象
- C++找对象的季节——指向学生类的指针
- 指向对象的指针【c++】
- C++中“指向const对象的指针”和“const指针”
- C/C++开发语言系列之13---C++对象指针—指向对象的指针
- C++中指向对象的常指针与指向常对象的指针详解
- [标准C/C++基础]用指针指向string类的对象
- c++ const指针和指向const对象的指针
- C++中指向对象的常指针和指向常对象的指针
- C++中的指向const对象的指针、const指针、指向const对象的const指针
- C++中关于指向对象成员函数打指针例子
- C++基类指针指向的派生类对象内存的释放
- 21天学通c++之第二周 指针 8.10 使用指向const对象的指针
- C++ 派生类指针指向基类对象