爲什麼靜態成員函數不能申請爲const?

將成員聲明爲const就是承若不會修改該函數所屬對象,但是static成員不屬於對象,所以不能將static函數聲明爲const。

Const用於後置修飾成員函數時,意味着被修飾的成員函數的隱士參數(this指針)由原來的Class *const轉換爲const Class *const類型,使得該成員函數不能修改成員屬性,除非該屬性被mutable修飾。

Static類函數沒有this指針,其本質上屬於c函數,滿足_cdel調用協定,而成員函數被稱爲_thiscall,帶有隱士的this指針參數。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章