Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
// C++ für Spieleprogrammierer // Übung zu Kapitel 11 // Übung // #include <iostream> using namespace std; // Funktionsprototypen // void ZeigeKoordinaten (const string &sText, int Breite = 100, int Hoehe = 50); // Hauptprogramm // int main () { // Funktionsaufruf // ZeigeKoordinaten ("Kleines Icon 1"); ZeigeKoordinaten ("Kleines Icon 2"); ZeigeKoordinaten ("Mittleres Icon 1", 120, 60); ZeigeKoordinaten ("Mittleres Icon 2", 120, 60); ZeigeKoordinaten ("Grosses Icon", 150, 75); return (0); } // main-Funktion // ZeigeKoordinaten // void ZeigeKoordinaten (const string &sText, int Breite, int Hoehe) { cout << "Folgender Button wurde erstellt:\n"; cout << "--------------------------------\n"; cout << "Name : " << sText.c_str() << endl; cout << "Breite: " << Breite << endl; cout << "Hoehe : " << Hoehe << endl; cout << endl; } // ZeigeKoordinaten |
Zitat von »"FBI"«
Wahrscheinlich hat Heiko Kalista es einfach übersehen.
Aber es schadet ja nichts, die string.h trotzdem einzubinden. Ich hab es mir angewöhnt überall, wo ich strings benötige, auch die entsprechende Headerdatei einzubinden. Nachteile hat das nicht und schafft meiner Meinung nach übersichtlichkeit.
Zitat von »"Fruchteis"«
Bisser habe ich es gelernt, wenn man strings der STL einbinden möchte, dies anhand der Headerdatei <string> bewerkstelligen muss, doch wie ich dort erblickt habe scheint es auch ohne zu gehen.
Wie ist das möglich?
Hoffe ihr könnt mir weiterhelfen
Zitat von »"David_pb"«
Lass die Finger von string.h.
Das Ding bei std::string ist, dass das Template basic_string garnicht in string definiert ist. Das Template kann sonstwo definiert sein (bei VC++ z.B. in xstring, bei anderen Implementationen in basic_string usw...)
Dieser Header wird aber irgendwo in den inkludiertiefen vom Header istream ebenfalls inkludiert, welcher von iostream inkludiert wird. Ergo, mit inkludierten iostream kann man std::string verwenden.
Aber: in string sind einige Operatoren und Funktionen definiert nämlich Additions-, Vergleich- und Streamoperator (>>, <<) sowie die Funktion getline. Und diese Dinge funktionieren nur mit inkludiertem string Header.
Zitat
FBI hat Folgendes geschrieben:
Wahrscheinlich hat Heiko Kalista es einfach übersehen.
Aber es schadet ja nichts, die string.h trotzdem einzubinden. Ich hab es mir angewöhnt überall, wo ich strings benötige, auch die entsprechende Headerdatei einzubinden. Nachteile hat das nicht und schafft meiner Meinung nach übersichtlichkeit.
Lass die Finger von string.h.
Das Ding bei std::string ist, dass das Template basic_string garnicht in string definiert ist. Das Template kann sonstwo definiert sein (bei VC++ z.B. in xstring, bei anderen Implementationen in basic_string usw...)
Dieser Header wird aber irgendwo in den inkludiertiefen vom Header istream ebenfalls inkludiert, welcher von iostream inkludiert wird. Ergo, mit inkludierten iostream kann man std::string verwenden.
Aber: in string sind einige Operatoren und Funktionen definiert nämlich Additions-, Vergleich- und Streamoperator (>>, <<) sowie die Funktion getline. Und diese Dinge funktionieren nur mit inkludiertem string Header.
Fruchteis hat Folgendes geschrieben:
Bisser habe ich es gelernt, wenn man strings der STL einbinden möchte, dies anhand der Headerdatei <string> bewerkstelligen muss, doch wie ich dort erblickt habe scheint es auch ohne zu gehen.
Wie ist das möglich?
Hoffe ihr könnt mir weiterhelfen
Das was du gelernt hast ist also nicht ganz korrekt!
Zitat von »"Fruchteis"«
Ich hab das jetzt nicht so ganz verstanden, weshalb ich von #inlcude <string> die Finger lassen los. Was ist daran nun so schlecht
Werbeanzeige