首頁 > 後端開發 > C++ > C 常數和非常量方法中「this」指標的型別是什麼?

C 常數和非常量方法中「this」指標的型別是什麼?

Mary-Kate Olsen
發布: 2024-11-09 21:21:02
原創
240 人瀏覽過

What is the Type of the 'this' Pointer in C   Constant and Non-Constant Methods?

「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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板