指向对象的常指针变量与指向常对象的指针变量区别
来源:互联网 发布:暴风影音mac版 编辑:程序博客网 时间:2024/05/04 20:56
1 指向对象的常指针变量与指向常对象的指针变量区别
Time * const p; //指向对象的常指针变量 p的值(p的指向)不能修改
const Time *p; //指向常对象的指针变量,p指向的类对象的值不能通过p来修改
1.1 指向对象的常指针变量
将指针变量声明为const型,这样指针变量始终保持初值,不能改变,即其所指向不变。
Timet1(10,12,15),t2;
Time *const ptr1; //const位置在指针变量名前面,指定ptr1是常指针变量
ptr1 =&t1; //ptr1指向对象t1,此后不能再改变指向
ptr1 =&t2; //错误,ptr1不能改变指向
注意:指向对象的常指针变量的值不能改变,即始终指向同一个对象,但可以改变其所指向对象(如t1)的值。
什么时候需要用指向对象的常指针呢?如果想将一个指针变量固定地址与一个对象相联系(即该指针变量始终指向一个对象),可以将它指定为const型指针变量。这样可以防止误操作,增加安全性。
往往用常指针作为函数的形参,目的是不允许在函数执行过程中改变指针变量的值,使其始终指向原来的对象。
1.2 指向常对象的指针变量
指向常对象的指针最常用于函数的形参,目的是在保护形参指针所指向的对象,使它在执行过程中不被修改。
……
int main()
{
void fun(const Time *);//函数声明,形参是指向常对象的指针变量
Time t1(10,13,56);
fun(&t1); //实参是对象t1的地址
return 0;
}
void fun(const Time *p) //定义fun函数
{
p->hour = 18; //错误
cout<<p->hour<<endl;
}
- 指向对象的常指针变量与指向常对象的指针变量区别
- 指向常对象的指针变量
- 指向常对象的指针变量
- C++指向常对象的指针变量
- 指向常对象的指针变量
- 常对象+常对象成员+指向对象的常指针+指向常对象的指针变量+对象的常引用
- 指向变量的常指针与指向常变量的指针变量的区别
- 指向常对象的指针变量和指向对象的常指针
- 常指针,指向常变量的指针
- 常指针与指向常对象的指针
- 指向常对象的常指针
- C++指向对象的常指针
- 指向变量的常指针和指向常变量的指针
- 指向对象的指针变量
- 常指针与指向常量的指针
- 常指针与指向常量的指针
- C++中指向对象的常指针和指向常对象的指针
- 区分指向对象的常指针和常对象的指针
- 旋转数组中的最小元素
- 洛谷 P1434 滑雪
- 顺序表_栈
- 常见SQL语句
- 实验记录-myhands
- 指向对象的常指针变量与指向常对象的指针变量区别
- 自定义dialog、验证邮箱的dialog
- soj3129: windy和水星 -- 水星数学家 2
- N个鸡蛋放到M个篮子中
- javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'org
- Update Android Support Library to 23.2.0 cause error: XmlPullParserException Binary XML file line #1
- elm FatFs文件系统移植总结
- 洛谷P1739 表达式括号匹配
- ansible在远程机器将程序起在后台