C++ Befehldokumentation und Bibliotheken
-
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.
-
@tntnet
Die Pointer kommen aus C, die Referenzen sind in C++ hinzugekommen. Die Sprache C ist in C++ enthalten bzw. zu dieser kompatibel. Grade in Windows wird C-Code durch VC++ mit einem C++ kompilier kompiliert - was geht. Ich bin mir bewusst das keine offizielle Sprachezeichnung C/C++ gibt. Genau wie der Begriff "High-Level-Assembler", ist C/C++ ein Pseudo-Begriff.Wenn die Leute lieber wert auf formale Begrifflichkeiten legen, dann tut es mir leid eure Zeit vergeudet zu haben.
@Artchi
....aber Beiträge erstellen um etwas gesagt zu haben ist besser?
-
Gsok schrieb:
[...]Die Sprache C ist in C++ enthalten bzw. zu dieser kompatibel.[...]
Les dir mal http://david.tribble.com/text/cdiffs.htm durch, dann weißt du wie "kompatibel" C und C++ sind.
-
Gsok schrieb:
Wenn die Leute lieber wert auf formale Begrifflichkeiten legen, dann tut es mir leid eure Zeit vergeudet zu haben.
Das hat doch mit formalen Begrifflichkeiten nichts zu tun. "Highlevel-Assembler" ist ein Phantasiebegriff, unter dem man versuchen kann sich unter Zuhilfenahme der bekannten Einzelbegriffe etwas vorzustellen. Und sowas ist Mist!
Ich hatte gestern Abend Flitschgummi als Nachspeise. Da weißt du auch nicht, dass ich Pudding mein...Und zu den anderen Sachen:
Du hattest scheinbar noch kein Buch in der Hand, wo virtuelle Funktionen im Konstruktor platziert wurden, oder hirnrissigst in Beispielen abgelitten wird (der Begriff war Ansicht, da dieses Ableiten sehr viel mit leiden zu tun hatte...)Java kennt keine Pointer oder Referenzen? Irrtum, Java kennt NUR Referenzen. Java kennt bei Klassen keine Value-Typen.
-
Gsok schrieb:
@tntnet
Die Pointer kommen aus C, die Referenzen sind in C++ hinzugekommen. Die Sprache C ist in C++ enthalten bzw. zu dieser kompatibel. Grade in Windows wird C-Code durch VC++ mit einem C++ kompilier kompiliert - was geht. Ich bin mir bewusst das keine offizielle Sprachezeichnung C/C++ gibt. Genau wie der Begriff "High-Level-Assembler", ist C/C++ ein Pseudo-Begriff.Wenn die Leute lieber wert auf formale Begrifflichkeiten legen, dann tut es mir leid eure Zeit vergeudet zu haben.
Ich Zitiere nochmal aus deiner vorigen Nachricht:
Gsok schrieb:
Die Konstrukte von C sind später (virtuelle Methoden, Vererbung, Pointer-Arithmetik)...
Daraufhin meine Antwort:
tntnet schrieb:
In C gibt es keine virtuellen Methoden oder Vererbung.
Hier geht es nicht um Begrifflichkeiten, sondern Deine Aussage ist schlichtweg falsch und irreführend. Ich habe auch keine Pointer oder Referenzen erwähnt. Bewusst habe ich die Pointer-Artithmetik aus meiner Kritik weg gelassen, da es diese durchaus sowohl in C und C++ gibt.
-
Der C++ Erfinder Bjarne Stroustrup wird am besten wissen, was er da gemacht hat:
http://www.research.att.com/~bs/bs_faq.html#C-slash schrieb:
There is no language called „C/C++“. The phrase is usually used by people who don't have a clue about programming (e.g. HR personnel and poor managers). Alternatively, it's used by people who simple do not know C++ (and often not C either).
Und was den Mythos angeht, das C++ nur ein erweitertes C ist:
http://www.research.att.com/~bs/bs_faq.html#difference schrieb:
C++ is not a descendant of C99; C++ and C99 are siblings.
Daraus folgt auch, das man kein C lernen muß/sollte, um C++ können. Denn gerade Leute wie Gsok verbreiten gerne den Unsinn, das man ja C lernen soll, weil C++ angeblich nur ein erweitertes C ist. Zitat von Herrn Stroustrup:
http://www.research.att.com/~bs/bs_faq.html#prerequisite schrieb:
Knowing C is a prerequisite for learning C++, right?
Wrong. The common subset of C and C++ is easier to learn than C. There will be less type errors to catch manually (the C++ type system is stricter and more expressive), fewer tricks to learn (C++ allows you to express more things without circumlocution), and better libraries available.