using-direktive später aktivieren?
-
#include <iostream> // präprozessor; dateien aus der bibliothek laden int main(void) { // using-directive weglassen int i0; // variablen deklaraieren int i1; // variablen deklaraieren int i2; // variablen deklaraieren i0 = i1 = i2 = 18; // i0 und i1 und i2 haben alle 18 als Wert std::cout << "hallo, meine lieblingszahl ist " << i0*i1*i2; // verwende std::cout namespace ohne "using-directive" // ergebnis von 18*18*18 = 5832 std::cout << std::endl; // durch std::endl wandert der nächste string eine zeile runter std::cout << "bye"; using std::cin; // aktiviere cin cin.get(); // wartet auf enter-eingabe (stoppt programm) return 0;
Liebes Forum,
ich wollte fragen, ob der Code-Style schlecht/gut ist, wenn ich using std::cin; erst später in den code einbringe, statt ganz anfangs. (Kann er zu Fehlern führen?)
Ich wollte nur paar Sachen ausprobieren.
Vielen Dank im Voraus!
-
Mathematics schrieb:
[code="cpp"]
cin.get(); // programmDas ist der beste Kommentar
-
tut mir leid xD hab überall kommentare gekürzt , mir ist dieser fehler dann unterlaufen, lol.
hahahacin.get(); wartet nur auf Eingabe der Enter-Taste, mehr weiß ich leider nicht. wird erst später im buch verraten
-
Meine Meinung:
#include <iostream> // präprozessor; dateien aus der bibliothek laden
Der Kommentar erscheint überflüssig.
int main(void)
Da dies C++ und kein C ist, kann man das "void" innerhalb der Klammern besser weglassen.
{ // using-directive weglassen int i0; // variablen deklaraieren int i1; // variablen deklaraieren int i2; // variablen deklaraieren i0 = i1 = i2 = 18; // i0 und i1 und i2 haben alle 18 als Wert
Das halte ich für sehr schlecht. Wenn möglich, initialisiere die Variablen gleich sinnvoll anstatt das in Definition und Initialisierung aufzuteilen. (Übrigens ist dein Kommentar nicht ganz korrekt: das ist hier eine Definition, nicht nur eine Deklaration!)
Nächstes Problem: was bedeutet die 18? Solche Zahlen am besten sinnvoll mithilfe einer Kontakten benennen!
Wo wir schon dabei sind: i0, i1, i2 sind vielleicht auch nicht unbedingt gute Namen. Wenn du dich jetzt fragst, warum ich so drauf rumreite: gute Namen sind äußerst wichtig.
std::cout << "hallo, meine lieblingszahl ist " << i0*i1*i2; // verwende std::cout namespace ohne "using-directive" // ergebnis von 18*18*18 = 5832 std::cout << std::endl; // durch std::endl wandert der nächste string eine zeile runter
Durch std::endl wird ein Zeilenumbruch in den Stream geschrieben UND danach wird der Stream geflusht. Da du direkt danach wieder was in den Stream schreibst, ergibt das Flush wenig Sinn hier.
std::cout << "bye"; using std::cin; // aktiviere cin
Aktiviere? cin ist auch vorher "aktiv", es wird nur für Benutzung ohne namespace-Angabe sichtbar gemacht.
cin.get(); // wartet auf enter-eingabe (stoppt programm)
Du könntest auch
std::cin.get();
schreiben.
-
Vielen Dank!
-
Das mit dem using Statement sollst du so nicht verwenden. Das gebrauchst du idR nur wenn es in einer, zwei Funktionen von vielen bekannt sein muss - falls du so kollisionssicher programmieren willst. Benutz entweder die globale Variante, oder kürz ab und schreib den Scope immer dazu.