C++程序中的函数调用中经常会出现const。

C++程序中的函数调用中经常会出现const。,第1张

第族旦一个const表示改函数返回的是常量值(因为返回值为引用型,这里的const是用来限定客户代码的 *** 作的)

第二个const同第一个类似,表示改引用是只读的

第三个const有两个意思:

1、该函数可以被败穗缺察辩const的对象访问

2、告诉程序员这个函数不会改变对象内部状态

class A{

void ShowA(void) const{}

void ShowB(void) {}

}

void foo(const A&a)

{

a.ShowA()// 通过

a.ShowB()// 非法,const类型的对象只能访问const修饰的成员

}

在exceptional c++里有专门一节讲const的,建议看看这本书。这可以C++程序员的圣经啊!!

C++里的const与C里的const有所区别,C里的const所修饰的目标具有常量的性质,而C++里的const所修饰的目标仍然是变量的性质,但二者相同的一点败拿毁是其目标的值不能再改变。再说C++里的const比C里的意敏腔义扩展了很多,用在不同的地方有不同的细节差别,三言两语还真说不全。回到你的问题,const char* getName()察备const{...中的第一个const的意思是函数getName返回的指针指向的目标值是不可改变的,若代码后面有改变目标值的语句则过不了编译;而第二个const则是规定函数getName不能改变它所在对象的里的数据成员的值,也不能调用能改变这些数据成员值的函数,只能调用另一个const函数。所以这里的getName函数就被称为常成员函数,只有常成员函数才能 *** 作常对象——用<类名>const<对象名>形式声明的对象,对象一经初始化就不能再更改了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12300983.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存