C++ Aufgabe



  • Hallo ihr lieben ich habe da ein Problem und zwar muss ich diese Aufgabe lösen ich hab das alles auch schon in das Programm eingefügt nur brauch ich eine Begründung zu meinem Argument was für Konsequenzen das hat.
    Danke im vorraus 🙂
    So lautet die Aufgabe:
    Welche Konsequenz hat es, wenn die Deklaration der Variablen Wert_1,
    Wert_2, Summe und Produkt außerhalb der Hauptfunktion (geschweifte Klammern)
    erfolgt und weshalb?

    #include <iostream>

    using namespace std;

    double Wert_1;
    double Wert_2;
    double Summe;
    double Produkt;

    int main()
    {
    Wert_1 = 10.5;
    Wert_2 = 8.5;

    Summe = Wert_1 + Wert_2;
    Produkt = Wert_1 * Wert_2;

    cout << "Die Summe von " << Wert_1;
    cout << " und von " << Wert_2;
    cout << " lautet: " << Summe;

    cout << endl;

    cout << "Das Produkt von " << Wert_1;
    cout << " und von " << Wert_2;
    cout << " lautet: " << Produkt;
    cout << endl << endl;

    return 0;
    }



  • Was für ein Zufall, das gleiche habe ich gerade auch gefragt 😕 😉



  • Wow was für ein Zufall, dass wir genau das selbe Problem haben :)) 😉



  • Werden die Variablen außerhalb der Hauptfunktion deklariert dann werden sie automatisch mit 0 initialisiert. Andernfalls wäre ihr Wert undefiniert.

    Außerdem sind sie in der gesamten Datei verfügbar, also z.B. auch in anderen Funktionen. Das kann zu unschönen Fehlern führen und sollte vermieden werden.

    #include <iostream>
    
    int x = 100;
    
    int main()
    {
    	int x = 1500;
    
    	// Ausgabe 1500
    	std::cout << x << "\n";
    }
    

    Die lokale Variable überdeckt die globale Variabel. Man könnte erwarten, dass die Ausgabe 100 ist, aber sie ist 1500. Sowas kann zu schwer zu findenden Fehlern führen.

    Fazit: Globale Variablen gehören sich in den meisten Fällen nicht! Immer so lokal wie möglich deklarieren.



  • Vielen dank für die Hilfe 🙂


Anmelden zum Antworten