【C++】const

const 用法:

1. const修饰普通变量,在普通变量定义的前面加上const,变量就不能被重新赋值

2. const修饰指针的写法有点复杂:

const int *p  与 int  const *p完全等价,他们修饰的是*p,也就是*p不能被重新赋值,也就是被指向的对象

int * const p则不一样,它修饰的是p,也就是说p这个指针内存的地址不能动了,但是这个地址指向的变量还可以被重新赋值。

3. const修饰引用

const可以修饰引用:  int x=3; const int &y=x;  这个例子中,const修饰的是y,y是不能被重新赋值的  

4. const修饰函数形参,则表明在函数中,只能读取该形参,不能修改这个形参,以免误操作。

5. const 修饰函数的返回值:如给“指针传递”的函数返回值加const,则返回值不能被直接修改,且该返回值只能被赋值给加const修饰的同类型指针。例如:

const char *GetChar(void){};

char *ch = GetChar(); //错误

const char *ch = GetChar(); //正确

 

const在类中的用法:

1. 使用const修饰类的数据成员,这样做之后,这个类一旦被初始化后,它的数据成员就不能再被改变!

2. 更复杂的是,用const修饰类的成员函数,这样做后,这个常成员函数,不能对该类的数据成员进行修改!

原因在于,对于常成员函数,编译器编译的时候,它会这样认为:

也就是说它会认为函数参数中的this指针被修饰为const,那么this指针指向的数据成员就不能被改变了。

任何不会修改数据成员的函数都应用const修饰,这样,当不小心修改了数据成员或调用了非const成员函数时,编译器都会报错。

类的常成员函数只能由const类来调用,非const类是不能调用常成员函数的!!

调用常成员函数应该这样写:

参考:https://www.cnblogs.com/lanjianhappy/p/7298427.html 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值