Freigeben über


Bereich

C++-Namen können nur in bestimmten Bereichen eines Programms verwendet werden.Dieser Bereich wird der „Bereich“ des Namens bezeichnet.Bereich „bestimmt die Lebensdauer“ eines Namens, der kein Objekt des statischen Blocks gekennzeichnet.Bereich bestimmt außerdem die Sichtbarkeit eines Namens, wenn Klassenkonstruktoren und Destruktoren aufgerufen werden und wenn die Variablen, die für den Bereich initialisiert wurden, sind lokal.(Weitere Informationen finden Sie unter Konstruktoren und Destruktoren). Es gibt fünf Arten Bereich:

  • Name**Lokaler Bereich   **A, der in einem Block deklariert wird, ist nur innerhalb dieses Blocks und Blöcke, die durch Zugriff auf die Datei, und nur nach den Zeitpunkt der Deklaration enthalten sind.Die Namen eines formalen Argumente an eine Funktion im Kontext des äußersten Blocks der Funktion lokalen Gültigkeitsbereich aufweisen, als ob sie im Block deklariert worden wären, der den Funktionsrumpf enthält.Betrachten Sie das folgende Codefragment:

    {
        int i;
    }
    

    Da die Deklaration von i in einem Block ist, der von geschweiften Klammern eingeschlossen wird, verfügt i lokalen Gültigkeitsbereich und ist nicht möglich, weil kein Code ihn vor der öffnenden Klammer zugreift.

  • **Gültigkeitsbereich der Funktion   **Bezeichnungen sind die einzigen Namen der Gültigkeitsbereich der Funktion haben.Sie können überall innerhalb einer Funktion verwendet werden, jedoch nicht zugreifbare außerhalb der arbeiten.

  • **Dateigültigkeitsbereich   **, das jeder Titel außerhalb aller Blöcke deklarierte oder Klassen Dateigültigkeitsbereich verfügt.Es handelt sich um eine beliebige Stelle in der Übersetzungseinheit nach seiner Deklaration zugegriffen werden.Namen mit Dateigültigkeitsbereich, die nicht statische Objekte deklarieren, werden oft globale Namen bezeichnet.

    In C++ ist Dateigültigkeitsbereich auch als Namespacebereich.

  • Klassengültigkeitsbereich   Namen von Klassenmembern Klassengültigkeitsbereich haben.Klassenmember zugreifen können Funktionen nur über die Member Auswahl Operatoren (. oder – >) oder Zeiger-zu Member Operatoren (.*oder – >*) für ein Objekt oder ein Zeiger auf ein Objekt dieser Klasse verwendet werden. Klassenmember nicht statischen Daten wird als lokal auf das Objekt dieser Klasse.Betrachten Sie die folgende Klassendeklaration:

    class Point
    {
        int x;
        int y;
    };
    

    Die x-Klassenmember betrachtet werden y und im Gültigkeitsbereich der Klasse Pointsein.

  • **Bereich " Prototyp   **Namen, die in einen Funktionsprototyp deklariert werden, sind nur bis zum Ende des Prototyp sichtbar.Mit folgendem Prototyp deklariert drei Namen (strDestination, numberOfElementsund strSource). diesen Namen im Gültigkeitsbereich verlässt sich am Ende des Prototyp:

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

Siehe auch

Referenz

Grundlegende Konzepte