hallo world
-
dieses std will mir immer noch nicht einleuchten naja
-
Ja, ist auch eine Art Befehl.
Nö. Wäre es ein Befehl müsste es in einer Funktion stehen.
Generell sollte man sich das using namespace std; nicht angewöhnen, sondern stattdessen, dass innerhalb von Funktionen schreiben oder immer std::.
Jup, oder vielleicht nur einzelne Member des Namensraums importieren.
Aber hier kann ich auch nur sagen: Buch lesen.endl ist ein Manipulator, er steht für end of line. Den schickt man ebenfalls mit << auf die Konsole, dort gibt er einen Zeilenumbruch aus.
Das ist alles? Wieso dann nicht einfach '\n' ausgeben, tut doch dasselbe und ist komischerweise schneller
cout (und endl) ist irgendwo definiert.
Irgendwo? Nein, nicht irgendwo. In
<ostream>
.Mit #include sorgt man dafür, dass der Compiler weiß, dass cout existiert.
Gerade benutzt du noch den Begriff Definition, und jetzt weigerst du dich zu sagen, dass
cout
in<iostream>
deklariert istdieses std will mir immer noch nicht einleuchten naja
LIES.DAS.BUCH.BITTE. Nerv uns nicht mit solchen Fragen, verwirr dich nicht selbst, ...
Obwohl, wenn da wirklich
void main()
steht, hol dir vielleicht ein ordentlicheres. Das ist nämlich, sagen wir, furchtbar veraltet.
-
C++ benutzt Namensräume (namespace). Dass funktioniert wie ein Art Ordnerstruktur.
In std befinden sich unter anderem die Funktionen cout und endl.
Man könnte den Code so schreiben:
#include <iostream> void main() { std::cout << "hallo welt" << std::endl; }
Oder man sagt dem Compiler mit using namespace std, dass er auch im "Unterordner" std nach Funktions-/Variablen/...-namen suchen soll.
-
@Sone: Anfänger?
Ja, ich könnte sagen, das endl auch den Ausgabepuffer leert.
Ja, ich könnte sagen, dass cout in ostream deklariert ist.
Ja, ich könnte sagen, dass #include den kompletten Inhalt des Headers einfügt.
Aber was hätte ich damit erreicht, außer den noch weiter zu verwirren?
Außerdem finde ich, dass der Begriff definiert besser verständlich als deklariert ist.
-
Osbios schrieb:
In std befinden sich unter anderem die Funktionen cout und endl.
cout ist eine Funktion? oO
Osbios schrieb:
Man könnte den Code so schreiben:
#include <iostream> void main() { std::cout << "hallo welt" << std::endl; }
Was zum..? Welcher Compiler schluckt diesen Code?
-
das wird mit der Zeit alles klarer. Mach einfach weiter und achte erstmal darauf, wie die einzelnen Dinge verwendet werden. Am Anfang kommt unglaublich viel auf einmal was man brauch um ein C++ programm zu erstellen. Das wird schon noch.
Und hör nicht auf Sone.
-
ehy echt sorry, aber das buch ist echt trocken und ich dachte ich kau das was ich gelesen habe nochmal durch, ich werde die std sachen einfach mit schreiben und nach dem buch noch ein buch lesen und versuchen eigene programme zu schreiben... danke
-
Nathan schrieb:
@Sone: Anfänger?
Ja, ich könnte sagen, das endl auch den Ausgabepuffer leert.
Ja, ich könnte sagen, dass cout in ostream deklariert ist.
Ja, ich könnte sagen, dass #include den kompletten Inhalt des Headers einfügt.
Aber was hätte ich damit erreicht, außer den noch weiter zu verwirren?
Außerdem finde ich, dass der Begriff definiert besser verständlich als deklariert ist.Ja, du könntest auch einfach NICHTS sagen und ihm erklären, dass er verdammt noch mal sein Buch lesen soll, ohne nach allen Drei Sätzen alles genau erklärt haben zu wollen.
Es ist ja nicht irgendwie Hexerei, einfach den Anweisungen zu folgen, ohne die genaue Bedeutung einzelner Code-Teile zu kennen. Solange im Buch (hoffentlich) erklärt wird, dasusing namespace std;
dies und jenes ermöglicht, muss das reichen.
-
Ja, aber Halbwissen ist manchmal hilfreicher als kein Wissen.
Später weiß er dann genau, was das ist.
-
Nathan schrieb:
Ja, aber Halbwissen ist manchmal hilfreicher als kein Wissen.
Richtig. Aber es ist auch gefährlicher. Weil er z. T. dieses "halbfalsche" Wissen eben im Kopf herum trägt, und das kostet ihn später noch was, weil er, ohne zu Fragen, dieses Wissen direkt so als allgemeingültig abstempelt, und dadurch einige Hä?-Momente haben wird.
Wenn er nichts weiß, dann muss er sich bei Fragen ERSTMAL durchs Buch informieren.
Wenn das wirklich nichts bringt, dann wäre es natürlich gut, diese Frage auf ihre Wichtigkeit zu prüfen. Ist sie so grundlegend, dass man ohne eine Antwort das Lesen nicht fortsetzen kann? Ist sie interessant, weil ihre Antwort von Relevanz für die Beispiele im Buch oder eigene kleine Programme ist? Oder scheint einem etwas widersprüchlich, man versteht etwas einfach nicht, was man besser wohl verstehen sollte... weil es bspw. nicht einfach nur nebenbei im Buch erwähnt, sondern schon etwas länger behandelt wird.
Erst wenn eines davon zutrifft, sollte man Communities wie hier konsultieren. Bei so Sachen wie der Bedeutung der Bestandteile eines Hello-World Programms sollte man einfach munter "weitermachen", wie otze schon sagte.
-
ja im buch wird schon alles sehr genau beschrieben und auch auf typische Fehler hingewiesen zu dateitypen und schleifen habe ich viele Beispiele mit Aufgaben bekommemn aber dieses std wurde einfach ausgelassen ich hab auch im glossar nach geschaut aber wurden nochmal die Seiten aufgelistet, in denen es nochmal auftaucht. Ich denke ich kann erstmal ohne genaues wissen darüber leben und immer braf mitschreiben, stört ja auch nicht, und ich werd ja auch was programmieren können ohne jede schreibweise zu verstehen, vielleicht nehm ich mir noch ein Tutorial dazu um andere schreibweisen zu sehen.
-
Ach so, du bist schon wesentlich weiter?
Dann google mal nach c++ namespace.
-
ich hab auch sehr selten internet zugang (alle 2 wochen am we) ich überlege mir aber einen Lidel Internetstick zu holen, anderer seits kann ich mir meine fragen aufschreiben und alle 2 wochen mal ne seschen einlegen mit googleln chatten und forum
-
ja das nechste kapitel ist über Ein- Ausgabe
-
Sone schrieb:
Osbios schrieb:
In std befinden sich unter anderem die Funktionen cout und endl.
cout ist eine Funktion? oO
Osbios schrieb:
Man könnte den Code so schreiben:
#include <iostream> void main() { std::cout << "hallo welt" << std::endl; }
Was zum..? Welcher Compiler schluckt diesen Code?
Der Korrektheit zur Liebe: std::cout ist ein Objekt mit einer Methode für den << Operator.
Ich weiß jedoch nicht was an dem Code auszusetzen ist.
-
void main()
ist schon seit C++98 nicht standardkonform.
-
...ja das hallo welt hab ich nur so jetzt aus dem internet, ich programmiere mit code::blocks und gcc. also void ist wohl auch so ein daten typ und nicht mehr aktuell oder wie?...
zu namespace
also ist das so eine art vriablen deffinition ?void f() { ; } // Funktion auffindbar im globalen Namensraum
namespace MTF
{
void f() // Funktion auffindbar im Namensraum MTF
{
throw std::exception("f - ausgelöst");
};
}
Im Folgenden der Aufruf:
void g()
{
f(); // f() aus globalem Namensraum wird aufgerufen
MTF::f(); // f() aus Namensraum MTF wird aufgerufen
using namespace MTF; // Namensraum MTF wird sichtbar gemacht
f(); // f() aus Namensraum MTF wird in diesem Fall aufgerufen
}
-
Ich habe auch dieses Buch und soweit bin ich klar gekommen. Namensräume werden ab Seite 141 näher erläutert. Viel spaß
-
hey cool
-
[quote="Sone"]
cout (und endl) ist irgendwo definiert.
Irgendwo? Nein, nicht irgendwo. In
<ostream>
.
[quote]
Also doch irgendwo?!