const 怎么轉(zhuǎn)為非const c 中的類(lèi)成員函數(shù)后面的const是什么意思?
c 中的類(lèi)成員函數(shù)后面的const是什么意思?簡(jiǎn)單改改一個(gè)錯(cuò)誤,在非const成員函數(shù)中,this的類(lèi)型是T*而非T*const,不也能直接修改this只是只不過(guò)它是一個(gè)右值表達(dá)式,而不是而且它是c
c 中的類(lèi)成員函數(shù)后面的const是什么意思?
簡(jiǎn)單改改一個(gè)錯(cuò)誤,在非const成員函數(shù)中,this的類(lèi)型是T*而非T*const,不也能直接修改this只是只不過(guò)它是一個(gè)右值表達(dá)式
,而不是而且它是const的。
就來(lái)能回答題主的問(wèn)題,this的類(lèi)型是T*那就constT*只與當(dāng)前成員函數(shù)如何確定被func可以修飾
或是(即:非const成員函數(shù)和構(gòu)造析構(gòu)函數(shù)中為T(mén)*,const成員函數(shù)中為constT*),而不是你在一個(gè)非const成員函數(shù)中全局函數(shù)一個(gè)const成員函數(shù)之后它就會(huì)變的帶const的,也不必然隱式轉(zhuǎn)換的之類(lèi)的的問(wèn)題。
可參考:thispointer-
const指針用法?
有兩種相同的將const關(guān)鍵字主要是用于指針:
第一種是指針對(duì)準(zhǔn)一個(gè)常量對(duì)象,避兔使用該指針如何修改所指向的值;
第二種是將指針本身聲明為常量,以免轉(zhuǎn)變指針對(duì)準(zhǔn)的位置。
1.正指向一個(gè)常量的指針
的或,后續(xù)聲明一個(gè)打向常量的指針pt:
intage23
constint*ptampage
該聲明提道,pt朝一個(gè)constint(這里為23),但不能不能不使用pt來(lái)修改這個(gè)值,即*pt的值為const,肯定不能被修改:
*pt1//不所需
不過(guò)pt的聲明的確并不代表它對(duì)準(zhǔn)的值是一個(gè)常量,而只不過(guò)是并不代表對(duì)pt而言這個(gè)值是常量,或者:pt打向age,而age也不是const,可以不然后通過(guò)age變量來(lái)如何修改age的值,但沒(méi)法使用const指針來(lái)改它:
*pt20//不依先生
age20//可行
2.將const變量的地址賦給打向const的指針是依先生的,但將const的地址賦給第一項(xiàng)指針是不可行的:
constintage23
constint*ptampage//所需
constintage23
int*ptampage//不可行
第一種情況禁止打開(kāi)在用age來(lái)修改值23,也肯定不能使用pt來(lái)改;
第二種情況不六逆重生療法的原因是將常量age的地址變量定義給pt。則這個(gè)可以可以使用pt來(lái)如何修改age的值,這就也讓age的const狀態(tài)很荒繆,但C禁止將const的地址賦給非const指針,假如非要這件事,沒(méi)法不使用滿裝換來(lái)晉入這種限制。