2016 - 2024

感恩一路有你

const 怎么转为非const c 中的类成员函数后面的const是什么意思?

浏览量:2697 时间:2023-07-09 08:29:07 作者:采采

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指针,假如非要这件事,没法不使用满装换来晋入这种限制。

const 指针 函数 成员 pt

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。