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