亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C ++常量用法說明

C ++常量用法說明

C++
慕慕森 2019-11-05 15:45:08
const int* const Method3(const int* const&) const;有人可以解釋每個const的用法嗎?
查看完整描述

3 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

如果將其重寫為完全等效的內容,會更容易理解


// v───v───v───v───v───v───v───v───v───v───v───v─┬┐

//                                               ││

//  v──#1    v─#2             v──#3    v─#4      #5

   int const * const Method3(int const * const&) const;

然后從右到左閱讀。


#5表示左側的整個函數聲明為const,這表示這一定是成員函數,而不是自由函數。


#4表示左邊的指針是const(不能更改為指向其他地址)。


#3表示int左側的是const(不得更改為其他值)。


#2表示左側的指針是const。


#1表示int的左側是const。


放在一起,您可以將其作為const名為的成員函數讀取,該成員函數Method3引用指向的const指針int const(const int如果需要,可以引用,然后返回const指向int const(const int)的指針)。



查看完整回答
反對 回復 2019-11-05
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

首先const T等于T const。

const int* const因此等于int const * const。

讀取其中包含許多const標記和指針的表達式時,請始終嘗試從右到左讀取它們(應用上面的轉換之后)。因此,在這種情況下,返回值是指向constintconst指針。在const這里,使指針本身沒有意義,因為返回值不是可以修改的左值。const但是,指定為pointee 可以確保調用方不會修改所返回的int(或的數組intMethod3。

const int*const&成為int const*const&,因此它是對指向const的const指針int引用。通過引用傳遞const指針也沒有任何意義-您不能修改引用的值,因為指針為,const并且引用和指針占用相等的存儲空間,因此也沒有任何空間節省。

最后一個const表示該方法未修改該this對象。this方法主體中的指針將具有(理論上的)聲明T const * const this。這意味著一個const T*對象將能夠調用T::Method3()。


查看完整回答
反對 回復 2019-11-05
  • 3 回答
  • 0 關注
  • 445 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號