C++ Wie soll ich da nur anfangen...?
Übersicht

![]() |
AcidRainBetreff: C++ Wie soll ich da nur anfangen...? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Moin,
Ich habe,wie der Threadtitel vielleicht etwas undeutlich andeutet,vor,zusätzlich C++ zu lernen.. Ich habe bis jetzt nur mit BlitzBasic (2D,3D-kein B+ oder BMax) programmiert. Wie fange ich jetzt am besten und strukturiertesten an zu lernen ? Noob-Fragen: -Wo kann ich einen möglichst kostenlosen Compiler downloaden? -Nützen mir meine Blitz Kenntnisse überhaupt nennenswert etwas,oder gibt es bei beiden Programmiersprachen zu große Unterschiede ? Wenn ihr's beherrscht-wie habt ihr's gelernt ? AcidRain |
||
![]() |
Ninja |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sicher nützten sie dir was, im grunde funktioniert ja jede programmiersprache nach dem gleichen prinzip (funktionen, variablen, befehle,...).
Ich kenn mich zwar nicht so aus aber ich würd mal sagen DevC++ ist gut und kostenlos, aber da wartest du lange auf Erfolgserlebnisse (GUI usw) villeicht wärs gescheiter dir gleich die Microsoft Visual C++ Express anzusehen (Ebenfalls gratis von microsoft). |
||
Spiele & Security Tools
www.SelfSoft.org |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es gibt zig Bücher für C++, bei ebay kannste da sicher was günstiges schießen, oder in der Buchhandlung deiner Wahl solltest du auch schon ab 20 Euro Bücher dazu finden. Die ersten Kapitel kannst du eigentlich immer überfliegen, da dort variablen unde Schleifen erklärt werden, also das übliche, aber wirklich auch überfliegen, noicht einfach überspringen, denn die Schreibweise ist eine etwas andere, funktioniert aber ansonsten genauso.
Auch google ist dein Freund, einfach mal nach c++ googlen und die Foren dazu besuchen, die Scene kann dir da eigentlich immer helfen, genau so wie hier. Aber wie Ninja schon sagte, ist es nicht einfach eine Gui zu erstellen, alleine für ein einfaches Fenster brauchst du schon etwa 100 Zeilen Code, da du dich auch um das Message-System von Windows kümern musst, ich weiß wovon ich spreche, habe mich auch mal damit beschäftigt und es vorerst bei Seite gelegt, möchte gar nicht wissen, wie es dann erst bei der initalisierung eines Grafikfensters aussieht. Noch ein Tipp: den Borland C++ Builder gab es mal bei registrierung bei denen kostenlos, ist ne mächtige IDE, der Compiler ansich ist bei c++ immer kostenlos, du bezahlst wirklich nur für die Entwicklungsumgebung |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wer BlitzBasic wirklich begriffen hat, der sollte innerhalb von 1 Woche mit ein bisschen Arbeit gut auf C umsteigen können. Ich empfehle Dev-C++ und eine Library wie SDL oder Allegro (einfach googeln). | ||
Variety is the spice of life. One day ignore people, next day annoy them. |
flashmaxel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das einzige was an c++ wirklich anderst ist, ist dass es objektorientiert ist, was am Anfang recht schwer wirkt (fand ich) aber viele Vorteile hat. Außerdem kennt der Compiler nicht von Anfang an Funktionen wie Graphics,... Die musst du entweder selbst schreiben d.h die WinApi benutzen wenn du Grafik ausgaben erreichen willst, oder schon vorhandene Bibliotheken verwenden.
Als Compiler+IDE würde ich dir auch DevCpp empfehlen und auf http://devpaks.org/ findest du einige Pakete mit Bibliotheken (nur runterladen und installieren). Die Bibliothek Allegro(auch auf der Seite) ist extra für 2D Spiele geschrieben und kostenlos und stellt dir fast die selben Funktionen zur Verfügung wie Blitz2D (Bild laden, Bild zeichnen,...), nur das sie anderst heißen. Bibliotheken müssen über Include eingebunden werden. Der C++ Syntax ist gewöhnungsbedürftig, wenn du BB gewohnt bist(z.B das Semikolon nach jedem Befehl). Ansonsten helfen dir Bücher und das Internet. Mfg Max |
||
Real C programmers never die; they cast to void. |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Compiler gcc, IDE würd ich vllt wirklich DevC++ nehmen für den Anfang, wobei ich von IDEs weniger halte.
Und merk dir mal Qt vor, das ist das beste Toolkit auf dem Gebiet GUI und co. |
||
![]() |
Randall Flagg |
![]() Antworten mit Zitat ![]() |
---|---|---|
bei C++ muss man wirklich lange dran arbeiten, um GUI Anwendungen entwickeln zu können... ich habe C++ aufgegeben als ich a) erfuhr wie die befehle zum erstellen für Windowsfenster lauten und b) weil ich nach drei Wochen der Pause durch überhaupt nix mehr durchgestiegen bin. Ich geb dir nen Tipp: Hol dir Visual C++ von MS oder lern gleich C#, was laut einem Angestellten bei ner Firma, wo ich mal nen Praktikum gemacht habe die "Sprache der Zukunft" sein soll.
Wobei mir grade einfällt, was ich in nem Buch über Visual C# gelesen habe: Wenn du mit .NET arbeitest ist es so ziemlich wurscht, welche Sprache du nimmst, da das Ergebnis immer gleich ist und auf jeder Plattform läuft. Was du mit Visual C++ hinkriegst, kriegste auch mit Visual Basic 2005, Visual C# und sogar (Visual?) J# (java) hin. Übrigens auch der Grund, warum ich auf VB umgestiegen bin, da ich ein Jahr lang C++ gelernt habe und zum schluss kein eigenes Programm auf die Reihe gekriegt habe... ich wusste einfach nicht was ich machen sollte (Konsolenbasiert) und wie die Befehle dafür lauten... da hab ich mir nen Übungsbuch für C/C++ gekauft... was sich als Fehler herausstellte da sich das meiste um C dreht und C und C++ ein bisschen sehr (vor allem Befehlsmäßig) unterscheiden. Na ja, wenn ich nochmal Bock auf eine C Sprache habe, dann nehme ich nächstes mal Visual C#. Da mein Interesse sich aber von Anfang an um Windowsprogrammierung drehte hab ich mich jetzt für VB entschieden... was aber letztendlich egal ist, denn falls du wirklich mit .NET entwickelst gibt es Befehlsmäßig gar keine Unterschiede, nur bei der Programmstruktur und Variablen Deklaration. Wenn du Visual C++ lernen willst dann kann ich dir den Link zu nem kostenlosen eBook von Galileo Computing geben, das Buch kostet im Laden 60€ kannste dir aber umsonst auf der Verlagsseite runterladen, ist also nicht illegal ![]() EDIT: Falls du dich gegen .NET entscheidest kann ich dir den Borland C++ BuilderX empfehlen, der frei Verfügbar aber schwer auf der Borland Seite zu finden ist... vor allem der verdammte Key^^ EDIT: Buchmäßig kann ich dir auch "Easy C++" von Dirk Louis von Markt und Technik empfehlen... für den kleinen Einstieg ![]() Aber das einzige was du danach programmieren kannst sind Konsolenanwendungen, die Sachen berechnen und sie wieder ausgeben, und du kannst externe Dateien erstellen und daraus lesen lassen. Ich selber habs nach dem Buch nicht geschafft etwas eigenes zu Programmieren (was aber daran lag, dass ich nicht wusste WAS ich machen sollte; ist heute immer noch) aber es lohnt sich für ne erste Übersicht auf jedenfall |
||
Meine Parodien & Geschichten |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Randall Flagg hat Folgendes geschrieben: bei C++ muss man wirklich lange dran arbeiten, um GUI Anwendungen entwickeln zu können... ich habe C++ aufgegeben als ich a) erfuhr wie die befehle zum erstellen für Windowsfenster lauten und b) weil ich nach drei Wochen der Pause durch überhaupt nix mehr durchgestiegen bin.
Code: [AUSKLAPPEN] #include <QApplication>
#include <QWidget> int main(int argc,char *argv[]) { QApplication app(argc,argv); QWidget win; win.show(); return app.exec(); } Da hast du nen schönes leeres Fenster, und dass auf jedem OS, wo sich Qt kompilieren lässt. Und das sind verdammt viele. Wenn du natürlich die ekelhafte API von Windows nimmst, wo das erstellen eines fensters nen paar hundert zeilen fressen kann, mein beileid. zu b) Dann hast du es nie richtig verstanden, wenn mans einmal begriffen hat, verlernt man das so schnell nicht wieder. |
||
![]() |
Suco-XBetreff: ..... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein Fenster ist in maximal 50 Zeilen erstellt und es bedeutet nicht, dass man für jedes Fenster so viel schreiben muss. Es gibt immerhin die Möglichkeit, eigene Funktionen zu schreiben und das ganze so kurz zu gestalten wie in BlitzPlus.
Warum überhaupt 50 Zeilen? Ganz einfach, dort kann man ziemlich viele Sachen einstellen und diese Freiheit setzt natürlich voraus, dass man sich mal die Api Doku anschaut und nicht direkt weinend zusammenbricht. Desweiteren ist die WinAPI nicht C++ und es gibt unzählige Alternativen wie das Zeug von BORNtobeNAMELESS. Mfg |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
Randall Flagg |
![]() Antworten mit Zitat ![]() |
---|---|---|
@BORNtobeNAMELESS:
Jo, ich meinte die Windows API: Code: [AUSKLAPPEN] int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{ return 0; } Also ich glaube da würde Gott persönlich nicht durchsteigen, meiner Meinung nach sollte man aus Befehlen immer herauslesen können, was dir bewirken, aber dagegen ist altägyptisch ja noch leichter -.- Aber zum Glück muss man bei den neueren Versionen das nicht mehr selber eintippen sondern man hat nen schönen Editor, wo man Schaltflächen und alles andere einfach auf ein leeres Fenster ziehen kann... nochmal zum Thema durchblick: Ich fand es einfach n bisschen schwer zu lesen, vor allem in dem Übungsbuch, was ich mir gekauft habe. Vielleicht weißt du ja, was Code: [AUSKLAPPEN] int nMax = (a > b) ? a : b heißt, ich weiß es eben nicht... kann aber auch an dem Buch gelegen haben, weil es sogar die Aufgaben bei dem C++ Teil in C geschrieben hat >.<
Und was mich verwirrt hat war immer bei Printf diese ganzen Sachen mit dem %-Zeichen.... das einzige was ich jetzt weiß ist, dass "%d" ne Dezimalzahl ausgibt xD Da ist VC++/C# mit Console.WriteLine("Varible: {0}", Variable") irgendwie einfacher^^ Na ja, jedem das seine. Ich versuche jetzt erstmal VB2005 und dann C#... und dann seh ich mal zu dass ich dafür wenigstens nen vernünftiges Übungsbuch finde, wenn einem keine Projekte einfallen ist es scheiße schwer praktische Erfahrung zu sammeln ^^" |
||
Meine Parodien & Geschichten |
- Zuletzt bearbeitet von Randall Flagg am So, Mai 27, 2007 11:19, insgesamt einmal bearbeitet
![]() |
Suco-XBetreff: ..... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] int nMax = (a > b) ? a : b Ist a größer als b, ist nMax = a. Andernfalls b. Das müsste doch auch gut im Buch beschrieben sein? |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
Randall Flagg |
![]() Antworten mit Zitat ![]() |
---|---|---|
soll das heißen das "?" so ne Art if Abfrage ist und ":" sozusagen "else" darstellt?
Ne das war im Buch nicht beschrieben, ich habs erst erfahren als ich mir die Lösung angeschaut habe und wusste danach immer noch nicht den genauen Ablauf des Befehls ![]() Falls es wen interessiert: Es ist das Buch C/C++ Übungsbuch, 2. überarbeitete Auflage mit 330 praktischen und theoretischen Fragen über C/C++ von bhv ![]() EDIT: Ich finds auch irgendwie total lustig dass man sich 4, 5 Bücher über C++ (zum Teil auch gebraucht) kauft und hinterher festellt dass man zu blöd dafür ist und dass das ganze Geld umsonst war... und dass die gebraucht Bücher nicht mehr wirklich aktuell sind^^ |
||
Meine Parodien & Geschichten |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] if(a > b) {
nMax = a } else { nMax = b } Und dieses (Bedingung ? WennJa : Ansonsten) ist oft nützlich in Bezug auf Strings. In PHP beispielsweise: $Query = "SELECT * FROM `pages` ".($ShowAllPages == true ? "LIMIT 30" : "LIMIT 1")."WHERE `id`='xyz'"; Hat mir schon einige Zeilen Tipparbeit gespart. Die WinMain Funktion wurde von Windows definiert. Das Problem ist, die WinAPI ist C basiert. Alles ist also prozedural und nicht Objekt orientiert. Es gibt tausende Funktionen die natürlich eineindeutig benannt sein müssen. Weiterhin vermute ich, dass die Konzepte noch vllt. 12 Jahre zurückliegen. Damals hatte man keine so intelligenten IDEs wie heute. Ergo, man musste sich Tipparbeit ersparen, um schnell arbeiten zu können. Daher entstanden dann Funktionsbezeichner zusammengeschustert aus Abkürzungen und Akronymen. Man fährt mit .NET heute eine völlig andere transparente und verständliche Schiene. Auch C hat einige Jahre auf dem Buckel und so auch die Standardbibliotheken. Auch hier wurden sicher Funktionsnamen so gewählt, dass sie möglichst schnell zu tippen sind. Aber um das mal klar zu stellen: Funktionen um ein Fenster zu erstellen, Sound abzuspielen usw. sind in Bibliotheken definiert und gehören nicht zum Funktionsumfang von C. C ist nur eine Sprache die leider nur all zu oft vergewaltigt wird. Als .NET Begeisterter kann ich nur sagen: hier ist einiges getan wurden. Man hat intelligente Konventionen zur Codegestalung vereinbart die auch leserlich sind. C# als Sprache ist eine der genialsten Sprachen die ich kenne. mfg olli |
||
vertex.dreamfall.at | GitHub |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was mich an NET. störrt, ist vorallem dass es von MS kommt, und somit bewust absolut unportabel gestaltet ist. Noch schlimmer find ich, dass die installation des tollen Frameworks bei mir fast 2 Stunden gedauert hatte. In der Zeit hab ich Qt4 ja fast schon komplett kompiliert.
@Vertex: Ich würd dir empfehlen, mal in Qt4 rein zu schnuppern. Vllt. gefällts dir ja sogar. |
||
![]() |
Randall Flagg |
![]() Antworten mit Zitat ![]() |
---|---|---|
was genau meinst du mit unportabel?
Installation geht an für sich recht flott <5 bei mir. Das einzige was gedauert hat war die installation der IDE :p |
||
Meine Parodien & Geschichten |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du glaubst doch nicht im ernst, dass MS freiwillig etwas schreibt, was auf allen OS läuft? | ||
![]() |
Randall Flagg |
![]() Antworten mit Zitat ![]() |
---|---|---|
na ja, scheinbar haben sie es doch gemacht, wenn man wikipedia und den ganzen Büchern über .NET glauben darf ![]() |
||
Meine Parodien & Geschichten |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zeig mir mal bitte .NET für Linux und .NET für Mac. | ||
![]() |
Randall Flagg |
![]() Antworten mit Zitat ![]() |
---|---|---|
oh sry hab mich vertan... ![]() Ich war gedanklich bei der plattformunabhängigkeit von Anwendungen, die mit dem .NET Framework GESCHRIEBEN wurden ![]() EDIT: Gibt aber doch .NET für Linux, aber unter anderem Namen: Mono Für Mac guck ich nach, mom EDIT2: Mono ist eine .NET implementierung für Linux/Unix und für Mac ![]() |
||
Meine Parodien & Geschichten |
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Randall Flag: Da du, wie du selber zugibst, keine Ahnung hast, ist es vielleicht besser, du hälst dich etwas aus der Diskussion raus. Du kannst mit Blitz + WinAPI genauso umständlich programmieren wie mit C + WinAPI, wenn du willst. Da hat nichts mit den Sprachen zu tun.
C ist viel flexibler als BlitzBasic (rein von der Sprache her, ohne Funktionen), braucht dafür aber auch etwas mehr Schreibarbeit, z.B. bei verketteten Listen. Oder man benutzt dafür schon vorgefertige Librarys... |
||
Variety is the spice of life. One day ignore people, next day annoy them. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group