「this」指標的類型
在 C 中,類別方法中的「this」指標指的是目前物件實例。它的類型取決於該方法是否聲明為 const。
非常量方法內部:
在非常量方法內,'this' 的型別是 類別名稱*這個。這允許直接修改物件的成員變數。
常數方法內部:
在 const 方法中,'this' 的型別為 const ClassName* this。這是因為 const 方法無法修改物件的狀態。
編譯器怪癖和實現的限制:
某些編譯器,例如舊版本的MSVC ,可能會實現' this' 作為常數指針,無論該方法是否為const。然而,這是一種不符合 C 語言規範的非標準行為。
右值引用偵測:
隨著 C 中右值引用的引入11 後,就可以偵測到這種非標準行為。依賴於此的程式碼將無法在符合標準的編譯器中編譯。
MSVC 實作:
從 Visual Studio 2017 開始,MSVC 仍然使用非標準實作'this' 作為常數指標。這可能會導致使用右值引用的程式碼出現問題。
以上是C 常數和非常量方法中「this」指標的型別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!