Was ist ein Scope ?



  • Hallo,

    ein Scope ist der Geltungsbereich einer Variable oder 😕 oder is es der Sichbarkeitsbereich einer Varaible 😕



  • Mistery FTW schrieb:

    ein Scope ist der Geltungsbereich einer Variable oder 😕 oder is es der Sichbarkeitsbereich einer Varaible 😕

    Der Geltungsbereich einer Variable:

    int main()
    {
       int a;
       {
          int b;
       } // <-- Hier verlässt b seinen Geltungsbereich
       return 0;
    } // <-- Hier verlässt a seinen Geltungsbereich
    

    Die Frage ist natürlich was du unter "Sichbarkeitsbereich" ansiehst...



  • Sowohl als auch. Kommt eben darauf an, in welchem Kontext du den Scope betrachtest, Zugriff oder Lebensdauer.



  • naja ich bräuchte es für eine Klausur in der Schule ....

    jetzt ist halt die frage was ich dann da antworte geltungsbereich oder sichtbarkeits bereich ...



  • int a = 10; // Global
    
    int main() {
    
    int a = 100; // lokal -- Globales a ist noch gültig aber nicht mehr sichtbar
    
    cout << a << endl; // 100
    cout << ::a << endl; // 10 -- mit dem Scope Operator 
    
    /* Vorsicht!
    Der Scope Operator nimmt sich nicht die Variablen aus dem nächsten
    äußerem Block, sondern die Globalen die in der ganzen Datei gültig sind.
    */ 
    
        { // neuer Block innerhalb eines schon bestehenden
            int c = 20; //
            cout << c << endl; // 20
    
            cout << a << endl; // Was passiert? Fehlt der Scope Operator oder nicht?
        } // neuer Block Ende
    cout << c << endl; // Ups, gibt es die überhaupt noch?
    
    } // main Ende
    

    Namensräume (Namespaces) kann man sich auch selber einrichten und dann qualifiziert ansprechen.

    Grundsätzlich gilt : Was lokal ist (innen), ist auch gültig.

    Bei tiefen Verschachtelungen wird es schwer. Wenn man mit Referenzen arbeitet muss man ebenfalls gut aufpassen was man wo ändert. Verlässt man einen Block werden die lokalen Variablen zerstört, wie im Beispiel (int c).

    Einfach mal rum spielen und schauen was passiert.




  • Mod

    Der Scope einer Deklaration ist der Teil eines Programmes, in dem der unqualifizierte Name benutzt werden kann, um auf das deklarierte Etwas zu verweisen . Ob man das nun Sichtbarkeits- oder Geltungsbereich nennen will, ist eher Geschmacksfrage - schließlich gibt es keine offizielle Übersetzung dieser Begriffe.


Anmelden zum Antworten