C++ Befehldokumentation und Bibliotheken
-
Hi alle miteinander!
Nachdem ich mich im 3D-Bereich einstudiert habe und eine Skriptsprache schon relativ gut kann(C4Skript basiert sogar auf C++) wollt ichs mal mit der beliebtesten Programmiersprache versuchen. So, habe jetzt auch einige Dinge durchgelesen, aber dennoch gibts noch Fragen:Ich suche da jetzt allerdings eine Online Dokumentation, die alle Befehle enthält. Gibts sowas überhaupt? Und kann mir einer diese Bibliotheken noch besser erklären? woher weiß ich, was ich includieren muss, was es bewirkt und welche Bibliothek ist bisher am besten? Ist Eclipse gut um C++ zu skripten?
Die meisten Dinge in der FAQ versteh ich übrigens nicht ganz, weil immer wieder Begriffe auftauchen(CPP, Header, etc) die ich nie in dem Bezug gehört habe. Erklärt finde ich die aber nirgends
-
Naja, das du nichts verstehst, kommt daher, das du ja auch falsche Begriffe benutzt. Wir scripten nicht in C++, wir programmieren. Denn C++ ist eine Programmiersprache und keine Skriptsprache.
Weiterhin kennt C++ keine Befehle. C++ kennt Schlüsselwörter, Funktionen und Klassen. Und entsprechend gibt es keine Befehlsübersicht. Es gibt API Referenzen, wie z.B. folgende: http://www.cplusplus.com/reference/
Aber das ist nur die Referenz zur Standard-Bibliothek, d.h. zu dem Minimum was ein C++-Compiler anbietet. Man kann aber C++ immer selber um Bibliotheken erweitern (z.B. OpenGL, DirectX usw.). Aber das macht es unmöglich alles in einer Übersicht anzubieten.
Welche Header-Dateien man inkludiert, steht in der jeweiligen Referenz der API drin. Man muß es halt einfach nachlesen. Und für Funktionen/Klassen die man regelmäßig benutzt, prägt man sich das irgendwann mal automatisch ein, welche Header-Dateien man inkludieren muß. Beim Programmieren ist vieles ganz einfach Erfahrungswerte.
Was für ein Buch benutzt du denn um C++ zu lernen? Ich vermute mal keines? Hier die Empfehlungen (eines der Bücher reicht):
- Der C++ Programmierer das Lehr- und Lernbuch von Ulrich Breymann
- C++ PrimerEclipse ist ganz gut. Wenn du aber unter Windows arbeitest, empfiehlt sich das ebenfalls kostenlose VisualC++ Express, weil dir bei Fragen viel mehr Menschen helfen können. Eclipse wird eher selten von C++-Programmierern genutzt.
-
Hi,
Eclipse mit dem CPP-Plugin ist sicherlich gut. Nur denke ich für den Anfang ist es einfacher, mit nem simplen Texteditor zu arbeiten. Z.B. Notepad++.
Außerdem Scriptet man C++ nicht. Das ist ne waschechte Programmiersprache, keine Scriptsprache.Und Befehle gibt es vllt. in einem Terminal, aber nicht in C++. Da nennt man das Methoden oder Funktionen.
Eine Auflistung der in der Standard-Bibliothek bereitgestellten Klassen und Funktionen gibt es z.B. hier:
http://cplusplus.com/reference/Und wenn du mit Begriffen aus der FAQ nichts anfangen kannst, hiflt google. Oder erstmal für den Anfang ein gutes Buch zum Thema, das glaube ich täte dir sowieso ganz gut
-
Was ist denn der Unterschied zwischen Skript und Programmieren? Beides beinhaltet Anweisungen, die ausgeführt werden.
Also gut, ich weiß jetzt, es gibt keine Befehle(das erleichtert es für mich leider nicht
) sondern nur 'Referenzen'.
Aber man wird ja irgendwie was schreiben müssen um Beispielsweise eine Nachricht ausgeben zu müssen, Namen zu ändern oder zu bewegen. Da finde ich einfach nirgends, was man wofür schreiben muss. Und der Link verwirrt mich nur noch mehr und das kommt wohl daher, dass ich da überhaupt kein Wort verstehe xDAber es muss doch irgendwo einfach mal simple Grundlagen, 'Referenzen' fürs Nachrichtausgeben usw. geben. Ich weiß bis jetzt:
#include = imporiert aus Bibliotheken, die Dinge beinhalten
main = steht immer am AnfangEin Buch kann ich mir im Moment noch nicht anschaffen, bin erstens erst Schüler und weiß noch gar nicht wo ich sowas finde
-
Es bringt recht wenig, dir hier jetzt Tips zu geben. Dir fehlt einfach alles, was man an Grundlagen brauchen würde.
Schau einfach mal in die C/C++-FAQ, da steht einiges an Info für Anfänger. Informier dich erstmal. wenn du konkrete Fragen oder Probleme hast kannst du dich ja wieder melden. Aber hier jetzt bei Adam und Eva anfangen macht wenig Sinn und ist auch nicht der Sinn eines Forums.
-
Dann such dir wenigstens ein C++ Tutorial:
http://www.c-plusplus.net/cms/modules.php?op=modload&name=Downloads&file=index&req=viewsdownload&sid=2C++ lernt man nicht so mal gerad' eben...
-
Bowserkoopa schrieb:
Ein Buch kann ich mir im Moment noch nicht anschaffen, bin erstens erst Schüler und weiß noch gar nicht wo ich sowas finde
Ein Buch ist dazu da, zu lernen, wo Du was findest. Ich rate Dir dringend, eines zu besorgen.
Oder weisst Du nicht, wo Du ein Buch findest? Frage doch mal in einer Buchhandlung, ob die Bücher verkaufen
.
-
tntnet schrieb:
Bowserkoopa schrieb:
Ein Buch kann ich mir im Moment noch nicht anschaffen, bin erstens erst Schüler und weiß noch gar nicht wo ich sowas finde
Oder weisst Du nicht, wo Du ein Buch findest? Frage doch mal in einer Buchhandlung, ob die Bücher verkaufen
.
Oder frag in deiner Bibliothek, ob die auch Ausweise haben damit du dir Bücher leihen kannst, wenn du dir die teilweise immensen Preise für ein eigenes Buch nicht leisten kannst.
-
Man hätte sich auch ein Buch zu Weihnachten von den Eltern schenken lassen können. Leider zu spät hier im Forum gefragt.
Aber im Ernst: C++ ist eine komplexe Sprache, die man nicht so mit Online-Tutorials lernt. Weil es sehr wenig gutes Material im Internet gibt. Es gibt auch nur wenig gute C++-Einsteigerbücher, weil auch viele Buchautoren schlecht C++ können. Die oben von mir empfohlenen Bücher sind sehr gut. Man kann sich das Buch z.B. zu einem Anlass schenken lassen. Jede Buchhandlung kann das Buch anhand der ISBN oder Buchtitel und Autor bestellen. Oder vielleicht hat die Stadtbibliothek eines dieser Bücher zum Ausleihen.
Zum Skripten und Programmieren: den Unterschied hier jetzt zu erläutern würde nichts bringen, weil wieder viele Fachbegriffe fallen würden, die man dann wieder erklären müsste, was wieder viel Schreibarbeit bedeutet. Und die Zeit hat hier niemand, wenn es auch damit getan wäre, wenn du einfach nur ein C++-Buch kaufen würdest.
Also gut, ich weiß jetzt, es gibt keine Befehle(das erleichtert es für mich leider nicht ) sondern nur 'Referenzen'.
Nein, die Referenz ist die Übersicht/Nachschlagewerk von verfügbaren Funktionen. Also anstelle von Befehlen gibt es in C++:
1. Schlüsselwörter
2. Funktionen
3. KlassenUnd die kann man in einer Referenz nachschlagen.
Aber man wird ja irgendwie was schreiben müssen um Beispielsweise eine Nachricht ausgeben zu müssen, Namen zu ändern oder zu bewegen. Da finde ich einfach nirgends, was man wofür schreiben muss. Und der Link verwirrt mich nur noch mehr und das kommt wohl daher, dass ich da überhaupt kein Wort verstehe xD
Eben, du verstehst nichts, weil du noch nichts gelernt hast! Es ist doch verständlich, das nicht alles im Internet oder im Forum für totale Neueinsteiger geschrieben sein kann. Wir können dir gerne bei konkreten Fragen, die beim Lernen auftauchen, helfen. Aber wir können hier nicht ein Lehrbuch mit mehreren hundert Seiten ersetzen. Übrigens, die empfohlenen Bücher erfüllen alles das was du forderst, auch Beispiele und eine gedruckte Referenz (Übersicht).
-
Gut, wird man eben warten müssen. Ist eben so dass Weihnachtsferien sind, zudem Wochendende und da hat die örtliche Bücherei eben zu. Das ist das Problem.
Also C4Skript hat ich eben auch online gelernt, da hatte ich gehofft, dass ich das mit C++ auch könnte. Gut, dann wird man wohl an nem Buch kaum drumherum kommen :S
-
Bowserkoopa schrieb:
Also C4Skript hat ich eben auch online gelernt, da hatte ich gehofft, dass ich das mit C++ auch könnte. Gut, dann wird man wohl an nem Buch kaum drumherum kommen :S
Kann man, es gibt zumindest für die Anfänge genug Tutorials im Netz. Damit wirst du dich das Wochenende über gut beschäftigen können. Später muss dann natürlich trotzdem ein Buch her, allerdings gibts da dann das "Thinking in C++" im Netz. Du brauchst also sicher nicht zu warten
-
Auf books.google.de hab ich auf die Schnelle auch den C++-Primer gefunden. Halt auf Englisch, genauso wie auch Thinking in C++. Aber um Englischkenntnisse kommste beim Programmieren über kurz oder lang eh nicht durmrum...
-
Noch was Wichtiges. Begeh nicht den gleichen Fehler wie Tausende von anderen C++-Anfängern.
Mache dir bewusst, dass Dinge wie Grafik, GUI, Sound, etc. fortgeschrittene Themen sind. Sei nicht übereifrig und denke, du könntest diese mal eben nebenbei lernen. Die Grundlagen sind in C++ bereits hochkomplex – falls du dich mit Themen wie Grafikprogrammierung beschäftigen willst, musst du die sprachbezogenen Aspekte verstanden haben. Und zwar richtig, sonst hast du dauernd nur Probleme. Also mein Rat: Nimm dir genügend Zeit, die Programmiersprache selbst zu lernen. Es wird sich auszahlen.
-
Keine Sorge, dass werd ich wohl für den Anfang ohnehin nicht machen können. Dann kommen ja auch Koordinaten, Vertex usw. in Spiel. Also gibt es da vielleicht irgendwelche kleinen Tuts oder so(außer dem Helloworld beispiel)? Könnte man ansonsten von Code der OpenSource ist, auch etwas lernen?
-
Also als ich angefangen habe C++ zu lernen habe ich mehrere verschiedene Tutorials durchgearbeitet und fand http://www.cpp-tutor.de/cpp/hinweise.html am besten. Es geht vorallem auch auf die Standardbibliothek (Container, Iteratoren, Algorithmen) ein, welche in den meisten anderen Tutorials die ich damals gelesen habe nicht mal erwähnt wurde. Das auch als Ebook kostenlos erhältliche Thinking in C++ kann ich ebenfalls empfehlen.
Wenn ich nochmal C++ lernen würde, dann würde ich mir vielleicht auch so ein Buch wie den C++ Primer aus der Bücherei ausleihen oder kaufen.
Das einzige Buch, das ich bisher über C++ gekauft und gelesen habe ist "Effektiv C++ programmieren" von Scott Meyers. Aber um damit etwas anfangen zu können, muss man die Grundlagen eigentlich schon beherrschen.
Ich habe es auch als nützlich befunden hier im Forum mitzulesen und darauf zu achten, was die erfahreneren Leute hier im Code von Anfängern bemängeln. Wobei erfahren hier nichts mit vielen Beiträgen zu tun hat, aber das erkennt man mit der Zeit welche Leute viele Beiträge mit wenig (richtigem) Inhalt schreiben und welche bereits mit einem Post alles wichtige sagen. Auf die Art und Weise kriegt man zumindest schnell raus, was typische Anfängerfehler sind und wie man es stattdessen richtig macht.
-
also für C/C++, insbesondere mit WindowsAPI ganz klare Empfehlung zu Visual C++ (Express) in der aktuellen Version.
Für Windoof gibts momentan keinen elegantere GUI-Editor als VC++, Eclipse ist ganz nett, entpfaltet sein Potenzial imo aber nur bei Java wirklich richtig.
VC kann in Windows-C/C++ imo mehr als Eclipse für Java!
die Mircroft API ist bei Microsoft im MSDN Network eig. sehr gut dokumentirt, manchmal musste aber schon viel suchen....weil es einfach sau viele API-Aufrufe sind die es da gibt
Für echtes C/C++ orientiert sich windows eig. sehr nahe an UNIX, womit die Unix Man-Pages(google!) eig. fast genauso für windows gelten wie für unix - ausnahmen gibt es sicherlich.
Das "gute/beste" Buch gibt es nicht. Les dir die ersten paar Kapitel eines Buches durch und dann fang an etwas selber zu machen. Die Konstrukte von C sind später (virtuelle Methoden, Vererbung, Pointer-Arithmetik) so Komplex, dass man diesem durch einfachem lesen, ohne Programmiererfahrung nicht mehr folgen kann. Die muss man sich "erleiden", ich nenne das "problemorientiertes" lernen. Macht bei Programmierung imo, am meisten sinn um die syntax einer sprache zu erlernen. "schönes" programmieren mit desgin-patter kommt (viel) später und ist oft auch nicht teil der einführende Bücher.
Sei nicht übereifrig und denke, du könntest diese mal eben nebenbei lernen. Sei nicht übereifrig und denke, du könntest diese mal eben nebenbei lernen
Sicherlich ein wahres Wort, aber grade andere Frameworks bzw. Sprachen bieten da einfach viel viel mehr als nacktes C/C++. Cocoa unter Mac in Objective-C, Java mit dem AWT und Swing-Framework. C/C++ ist high-level assembler, dass nehmen die meisten einfach nicht wahr.
-
Gsok schrieb:
Sicherlich ein wahres Wort, aber grade andere Frameworks bzw. Sprachen bieten da einfach viel viel mehr als nacktes C/C++. Cocoa unter Mac in Objective-C, Java mit dem AWT und Swing-Framework. C/C++ ist high-level assembler, dass nehmen die meisten einfach nicht wahr.
Höh? C++ ist ja wohl um Welten mehr als Assembler... Man arbeitet etwas näher an der Hardware, wenn man WILL. Es lässt sich wunderbar handhaben wie Java - wenn man will. Und man kann richtig Freakiges Zeug basteln, das nicht in C oder Java oder sonstwas möglich ist. Wenn man WILL. Ich würde sagen C++ ist flexibel. Aber niemals "Highlevel-Assembler", was auch immer das sein soll.
Und ich hab noch keinen Java-Kurs gesehen, der gleich mit SWT oder SWING angefangen hat. Da gings gaaaanz langweilig um Konsolen-Programmierung, Ein- und Ausgabe, Streams anfassen, Objektorientierung begreifen. Und erst wenn alles saß, hat man sich grafischen Oberflächen mit dem anfangs sehr ungewohnten Eventhandling zugewandt.
Der einzige Unterschied hier, was C++-Anfänger lernen müssen, ist dass die Standardbibliothek keine GUI, aber eben auch keine Konsole, vorsieht. Sie gibt gibt einem Sprachmittel an die Hand, und eine umfangreiche STL mit Algorithmen, Containern, Strings, usw. Für den Rest muss der Anfänger lernen wo man welche externen Bibliotheken findet und diese einbindet.
-
sagen wir mal so.
c++ ist tiefer als java und bietet dadurch speicher nahes programmieren, das mein ich mit "high level assembler". high lvl features wie schleifen, aber dennoch direkt im speicher rumhacken können. grade die zeiger/referenzen sind der signifikante unterschied zwischen c++ oder java. ein zwei schneidiges schwert und grade deswegen auch eine harte nuss als erste programmiersprache.
Für den Rest muss der Anfänger lernen wo man welche externen Bibliotheken findet und diese einbindet.
Dies ist wohl einer der Punkte, warum java soviel einfacher ist oder wirkt als C++. Du hast eine Box, wo alles drin ist. Googelst du dir den api-aufruf, funktioniert es. Das kann man bei c++ nicht grade sagen. Da folgt eine für anfänger ätzende suche und installation von zusatz bibliotheken und ein frustrierendes bekannt geben an den linker für die neuen libs....
Und ich hab noch keinen Java-Kurs gesehen, der gleich mit SWT oder SWING angefangen hat.
Sicher Basics first, aber der sprung ovn den baisics zur minimal-Gui ist bei c++ und windows sehr groß, zumal es da ja diverse wege gibt. Native Win-API, Qt und und und. Das ersclägt einen lernwilligen anfanger erstmal deultlich. "einfach" ist anders, einfach ist Java "new JFrame" - Fenster ist da..... :xmas1:
-
Gsok schrieb:
Das "gute/beste" Buch gibt es nicht. Les dir die ersten paar Kapitel eines Buches durch und dann fang an etwas selber zu machen. Die Konstrukte von C sind später (virtuelle Methoden, Vererbung, Pointer-Arithmetik) so Komplex, dass man diesem durch einfachem lesen, ohne Programmiererfahrung nicht mehr folgen kann. Die muss man sich "erleiden", ich nenne das "problemorientiertes" lernen. Macht bei Programmierung imo, am meisten sinn um die syntax einer sprache zu erlernen. "schönes" programmieren mit desgin-patter kommt (viel) später und ist oft auch nicht teil der einführende Bücher.
Hier steckt schon ein gravierender Fehler drin. In C gibt es keine virtuellen Methoden oder Vererbung. Die gibt es nur in C++. Es gibt eine Sprache mit dem Namen C und eine Sprache mit dem Namen C++. Häufig liest man auch C/C++. Eine solche Sprache gibt es allerdings nicht.
-
Auf inkompetente Beiträge von Gsok können wir hier gerne verzichten.