《C++ Primer》第 5 版 P269:靜態成員函數不與任何對象綁定,**無 this 指針**,故不能聲明 const,也不能在函數體內使用 this。
const 修飾非靜態成員函數時,作用於隱式參數 this:Class* const → const Class* const,承諾不修改對象狀態。__cdecl),**無隱式 this**,無對象可承諾不修改。__thiscall(this 通過 ECX/RCX 傳遞),靜態成員無此約定。| 特性 | 非靜態成員函數 | 靜態成員函數 |
|---|---|---|
| 隱式參數 | this (Class*) | 無 |
| 可聲明 const | 是 | 否 |
| 可訪問非靜態成員 | 是 | 否(需對象實例) |
| 調用語法 | obj.func() / ptr->func() | Class::func() / obj.func() |
理解「無 this 即無 const」,靜態成員函數設計意圖一目了然。