const 怎么转为非const c 中的类成员函数后面的const是什么意思?
c 中的类成员函数后面的const是什么意思?
简单改改一个错误,在非const成员函数中,this的类型是T*而非T*const,不也能直接修改this只是只不过它是一个右值表达式
,而不是而且它是const的。
就来能回答题主的问题,this的类型是T*那就constT*只与当前成员函数如何确定被func可以修饰
或是(即:非const成员函数和构造析构函数中为T*,const成员函数中为constT*),而不是你在一个非const成员函数中全局函数一个const成员函数之后它就会变的带const的,也不必然隐式转换的之类的的问题。
可参考:thispointer-
const指针用法?
有两种相同的将const关键字主要是用于指针:
第一种是指针对准一个常量对象,避兔使用该指针如何修改所指向的值;
第二种是将指针本身声明为常量,以免转变指针对准的位置。
1.正指向一个常量的指针
的或,后续声明一个打向常量的指针pt:
intage23
constint*ptampage
该声明提道,pt朝一个constint(这里为23),但不能不能不使用pt来修改这个值,即*pt的值为const,肯定不能被修改:
*pt1//不所需
不过pt的声明的确并不代表它对准的值是一个常量,而只不过是并不代表对pt而言这个值是常量,或者:pt打向age,而age也不是const,可以不然后通过age变量来如何修改age的值,但没法使用const指针来改它:
*pt20//不依先生
age20//可行
2.将const变量的地址赋给打向const的指针是依先生的,但将const的地址赋给第一项指针是不可行的:
constintage23
constint*ptampage//所需
constintage23
int*ptampage//不可行
第一种情况禁止打开在用age来修改值23,也肯定不能使用pt来改;
第二种情况不六逆重生疗法的原因是将常量age的地址变量定义给pt。则这个可以可以使用pt来如何修改age的值,这就也让age的const状态很荒缪,但C禁止将const的地址赋给非const指针,假如非要这件事,没法不使用满装换来晋入这种限制。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。