Const

这里总结const出现的情况,核心:“只读”(可以使常量和变量,但不能通过你这里对他进行改变)

1、顶层/底层const

由于指针本身是个对象,指针所指也是一个对象,二者独立。只有指针区分顶层/底层,

const char* p=greeting; //底层const,所指内容为常量,常见方式。

char* const p=greeting  //顶层const.指针(地址)是常量,表明不能指向不同的东西。

2、Const形参

形式:void fcn(const int var) 

形参是const,在实参初始化时会自动忽略掉顶层const,意思是传给它常量或非常量对象都是可以的。

意义:const限定传递过来的参数在函数内不可以改变,在该函数内不能对var进行修改。

PS:

如果函数无须改变引用形参的值,最好将其声明为常量引用。例如比长度:void isshort(const string &s1,const string &s2);

3、Const成员函数

修改this指针的类型,将其从常量指针改变为指向常量的指针,更加灵活。

形式:string isbn() const  {return this->BookNo}; 将const关键字放在成员函数的参数列表后面。

意义:只能读取数据成员,不能改变数据成员

(1)const成员函数,只能读取对象的数据成员,不能改变。所有类型的对象都可以访问。

(2)const对象可以调用const成员函数而不能调用非const修饰的函数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值