Udostępnij za pośrednictwem


Nazwy i nazwy kwalifikowanej

Nazwy używane z operatora binarnego rezolucji zakresu (::) są nazywane "kwalifikowanej nazwy". Nazwa określona po operatora binarnego rezolucji zakres musi należeć do klasy określonej po lewej stronie operatora lub członek jego klasy podstawowej.

Nazwy określone po operatorze wybranych elementów członkowskich (. lub ->) muszą być członkami typem klasy obiektu, po lewej stronie operatora lub członków jego podstawowej klasa(-y) określony.Nazwy określone w polu po prawej stronie operatora wybranych elementów członkowskich (– >) może być również obiekty innego typu klasy, ile po lewej stronie – > jest klasą obiektu i klasie operatora przeciążonego wybranych elementów członkowskich (– >), której wynikiem wskaźnik do innego typu klasy.(Niniejszy przepis jest omówione bardziej szczegółowo w Dostęp do klas Członkowskich.)

Kompilator wyszukuje nazwy w następującej kolejności, zatrzymując się po odnalezieniu nazwy:

  1. Bieżący zakres bloku, jeśli nazwa jest używana wewnątrz funkcji; inaczej, globalny zakres.

  2. Na zewnątrz za pośrednictwem każdego otaczający zakresu bloku, w tym zakres funkcji peryferyjnych (która obejmuje argumenty funkcji).

  3. Jeśli nazwa jest używana wewnątrz funkcji składowej, zakres tej klasy są wyszukiwane nazwy.

  4. Klasy podstawowej tej klasy są wyszukiwane nazwy.

  5. Zakres klasy otaczający zagnieżdżone (jeśli ma zastosowanie) i jej podstaw są przeszukiwane.Wyszukiwanie jest kontynuowane, dopóki nie jest przeszukiwana peryferyjnych otaczający zakres klasy.

  6. Jest przeszukiwana w zakresie globalnym.

Można jednak wprowadzić modyfikacje tę kolejność wyszukiwania w następujący sposób:

  1. Nazwy poprzedzony :: życie wyszukiwania ma się rozpocząć w zakresie globalnym.

  2. Nazwy poprzedzony klasy, struct, i Unii słowa kluczowe życie kompilatora, aby wyszukać tylko klasy, struct, lub Unii nazwy.

  3. Nazwy po lewej stronie operatora zakres rozdzielczości (::) mogą być tylko klasy, struct, obszaru nazw, lub Unii nazwy.

Jeśli nazwa odnosi się do niestatycznego członka, ale jest używana w funkcji członka statycznego, generowany jest komunikat o błędzie.Podobnie, jeśli nazwa odnosi się do członka niestatycznego w klasie otaczający, komunikat o błędzie jest generowana, ponieważ zamkniętych klas nie ma klasy otaczającej to wskaźniki.

Zobacz też

Informacje

Podsumowanie reguł zakresu