Udostępnij za pośrednictwem


Zakres

Nazwy C++ mogą być używane tylko w niektórych regionach programu.Ten obszar jest nazywany "zakres" nazwę.Zakres określa "okres istnienia" nazwy, które nie wyznaczają obiektu statycznego zakresu.Zakres określa także widoczność nazwa, o nazwie klasy konstruktory i destruktory i gdy zostały zainicjowane zmienne lokalne dla zakresu.(Aby uzyskać więcej informacji, zobacz konstruktory i destruktory.) Istnieje pięć rodzajów zakresu:

  • Zakres lokalny nazwa zadeklarowana wewnątrz bloku jest dostępne tylko w obrębie tego bloku i bloki ujęte przez nią i tylko po pkt deklaracji.Nazwy formalne argumenty funkcji w zakresie peryferyjnych bloku funkcji mają zakres lokalny tak, jakby miał zostały zadeklarowane wewnątrz bloku, otaczającą treści funkcji.Należy rozważyć następujący fragment kodu:

    {
        int i;
    }
    

    Ponieważ deklaracji i znajduje się w bloku, ujęta w nawiasy klamrowe, i ma zakres lokalny i nigdy nie jest dostępny, ponieważ żaden kod nie korzysta ona przed nawias klamrowy zamykający.

  • Działać zakres etykiety są tylko nazwy, które mają zakres funkcji.Ich może być używana w dowolnym miejscu w obrębie danej funkcji, ale nie są dostępne spoza tej funkcji.

  • Plik zakresu dowolną nazwę zadeklarowanych poza wszystkich bloków lub klasy ma zakres pliku.Jest dostępne w dowolnym miejscu jednostka tłumaczenia po jego zgłoszeniu.Nazwy z zakresu plików, które nie zadeklarować obiekty statyczne są często nazywane nazwy globalne.

    W języku C++ zakres pliku jest znany również jako zakres obszaru nazw.

  • Zakres klasy nazwy członków klasy mają zakres klasy.Funkcje składowe klasy jest możliwy tylko za pomocą operatorów wybranych elementów członkowskich (. lub ->) lub wskaźnika do podmiotów (. * lub – > *) do obiektu lub wskaźnik do obiektu klasy; dane elementu członkowskiego niestatycznego klasy jest traktowane jako lokalne względem obiektu tej klasy.Rozważmy następującą deklarację klasy:

    class Point
    {
        int x;
        int y;
    };
    

    Członkowie klasy x i y są uważane za w zakresie klasy Point.

  • Zakres prototyp nazwy zadeklarowanej w prototyp funkcji są widoczne tylko do końca prototypu.Następujący prototyp deklaruje trzy nazwy (strDestination, numberOfElements, i strSource); te nazwy go poza zakresem na końcu prototyp:

    errno_t strcpy_s( char *strDestination, size_t numberOfElements, const char *strSource );
    

Zobacz też

Informacje

Podstawowe pojęcia