在C 的世界中,用「::」表示的作用域解析運算子與它的對應部分是“.”。操作員。雖然其他語言(例如 Java)將單一運算子用於各種目的,但 C 選擇專門為解決成員變數和類別名稱之間的歧義而定制的專用運算符。
C 要求單獨的運算子的特殊性運算子源自於語言能夠定義成員變數和衍生類別類型共享相同名稱的場景。考慮以下程式碼範例:
struct foo { int blah; }; struct thingy { int data; }; struct bar : public foo { thingy foo; }; int main() { bar test; test.foo.data = 5; test.foo::blah = 10; return 0; }
在此範例中,衍生類別 bar 中的成員變數 foo 與父類別 foo 具有相同的名稱。為了區分兩者,C 使用範圍解析運算符,允許使用“::foo::blah”唯一引用衍生類別。在這種情況下,這種歧義解決機制就變得至關重要。
以上是為什麼 C 使用作用域解析運算子 ::?的詳細內容。更多資訊請關注PHP中文網其他相關文章!