首頁 > 後端開發 > C++ > 為什麼在 C 中從父類別呼叫方法時需要使用 `b->A::DoSomething()` 而不是 `b->DoSomething()` ?

為什麼在 C 中從父類別呼叫方法時需要使用 `b->A::DoSomething()` 而不是 `b->DoSomething()` ?

DDD
發布: 2024-11-03 08:30:29
原創
691 人瀏覽過

Why do I need to use `b->在 C 中從父類別呼叫方法時,A::DoSomething()` 而不是 `b->DoSomething()` ? 
在 C 中從父類別呼叫方法時,「 />A::DoSomething()` 而不是 `b->DoSomething()` ?

作用域衝突的C 重載解析

提供的程式碼片段說明了當不同作用域中存在兩個同名方法時,C 重載解析中的常見挑戰在這種情況下,編譯器依賴範圍可​​見性規則來確定適用的方法。當呼叫DoSomething 方法時,為什麼需要明確使用b->A::DoSomething() 而不是簡單地使用b->DoSomething()? >The編譯器預設考慮盡可能小的名稱範圍,在這種情況下,它只識別類別B 中定義的DoSomething 方法。

To要解決此範圍問題,有兩種方法:

明確範圍解析:

使用語法b->A: 明確指定所需方法的範圍: DoSomething(),強制編譯器辨識類別A 中定義的方法。入作用域的衍生類別。

以上是為什麼在 C 中從父類別呼叫方法時需要使用 `b->A::DoSomething()` 而不是 `b->DoSomething()` ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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