Guru
Date of registration: Dec 11th 2001
Location: Hämelerwald
Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)
Zum Lernen sind vermutlich ein Texteditor und ein Compiler (gcc zum Beispiel) am besten geeignet. Mit einer umfangreichen Entwicklungsumgebung würde ich nicht einsteigen, da diese viele Dinge im Hintergrund macht, die Du dadurch nie mitbekommen würdest. Aber gerade zur Fehlerdiagnose ist es hilfreich zu wissen, was die verwendete Entwicklungsumgebung eigentlich tut.Quoted
Original von KarlKaracho
Ich würde mich gerne mal an C++ versuchen, aber ich weiß leider nicht wo ich anfangen soll.
Könnte mir jemand nen Compiler/Entwicklungsumgebung o.ä. empfehlen? Hab mir den C++Builder von Borland besorgt, weils halt von der Struktur Delphi ähnelt. Kann man damit was anfangen oder gibt es bessere Alternativen??
Erfahrener Schreiberling
Date of registration: Oct 9th 2002
Location: da drüben, gleich dort.
Occupation: Warum? Hmm, weil ich sonst nix mit meiner Zeit anzufangen weiß :D
This post has been edited 1 times, last edit by "T2k" (Nov 24th 2005, 12:11pm)
Quoted
und noch ein tip: vermeide linux!!! ich als bekennender linuxhasser kann nur sagen: entwickeln unter linux ist schrott
This post has been edited 1 times, last edit by "ktm" (Nov 24th 2005, 12:23pm)
Quoted
Original von T2k
also ich kann mich der meinung meiner vorredner nicht anschließen, um es in etwas umgangssprachlicheren worten zu sagen: sicher ist ein texteditor gut wenn man jeden befehl und jede(s) einzelne klassenmember auswendig lernen will, ABER heutzutage dieses ziel zu vervolgen ist IMHO total dämlich und dann noch nur nen texteditor zu verwenden schwachsinnig. Vorallem wenn man sich UMSONST Visual Express C++ runterladen kann und alle vorteile wie intellisense, autovervolständigung etc genießen kann (die zudem das lernen vereinfachen, da mann nicht die zeit verschwendet klassenmember nachzuschauen oder sich wundert wenn ein member nicht funktioniert und nach 2-3 tagen siehst das man einen buchstaben klein geschrieben hat)
und noch ein tip: vermeide linux!!! ich als bekennender linuxhasser kann nur sagen: entwickeln unter linux ist schrott
und nochmals: programmieren/entwickeln heißt nicht funktionen/klassen/strukturen auswendig zu können!
@Joachim: kannst du ein beispiel nennen, ich kann mir jetzt nix gescheites unter deinen hintergrundtätigkeiten einer ide vorstellen die man so dringend mitbekommen müsste?
ps: wer mich flamen will per pm bitte... da störts keinen (mich auch nicht da ich nie mitbekomme wenn ne pm ankommt )
Guru
Date of registration: Dec 11th 2001
Location: Hämelerwald
Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)
Mit Texteditor meine ich nicht Notepad, sondern schon einen Editor mit Syntaxhighlighting und automatischer Codevervollständigung.Quoted
Original von T2k
also ich kann mich der meinung meiner vorredner nicht anschließen, um es in etwas umgangssprachlicheren worten zu sagen: sicher ist ein texteditor gut wenn man jeden befehl und jede(s) einzelne klassenmember auswendig lernen will, ABER heutzutage dieses ziel zu vervolgen ist IMHO total dämlich und dann noch nur nen texteditor zu verwenden schwachsinnig.
Warum?Quoted
und noch ein tip: vermeide linux!!! ich als bekennender linuxhasser kann nur sagen: entwickeln unter linux ist schrott
Wer hat das denn behauptet?Quoted
und nochmals: programmieren/entwickeln heißt nicht funktionen/klassen/strukturen auswendig zu können!
KarlKaracho nannte in seinem obigen Posting den C++-Builder und erwähnte die Ähnlichkeit desselben zu Delphi. Ich habe vor einigen Jahren mal mit Delphi gearbeitet und damals war es der Fall, daß gerade bei der GUI-Erstellung sehr viel Code automatisch erzeugt wurde. Zudem wurden viele GUI-Details (wie Positionen der einzelnen Elemente) in eigenen Dateien abgelegt, die über die Entwicklungsoberfläche nicht direkt zugänglich waren.Quoted
@Joachim: kannst du ein beispiel nennen, ich kann mir jetzt nix gescheites unter deinen hintergrundtätigkeiten einer ide vorstellen die man so dringend mitbekommen müsste?
Erfahrener Schreiberling
Date of registration: Oct 9th 2002
Location: da drüben, gleich dort.
Occupation: Warum? Hmm, weil ich sonst nix mit meiner Zeit anzufangen weiß :D
Quoted
Original von Joachim
...
Warum?Quoted
und noch ein tip: vermeide linux!!! ich als bekennender linuxhasser kann nur sagen: entwickeln unter linux ist schrott
Quoted
Wer hat das denn behauptet?Quoted
und nochmals: programmieren/entwickeln heißt nicht funktionen/klassen/strukturen auswendig zu können!
Quoted
... GUI-Details ...
Erfahrener Schreiberling
Date of registration: Feb 18th 2003
Location: Göttingen
Occupation: Linux Coder (ex Mathe SR Inf Student)
Quoted
Original von T2k
- groß und kleinschreibung bei dateinamen ist wichtig, es ist sogar möglich 2 quellcodedateien zu schreiben die sich nur in groß kleinschreibung unterscheiden... viel spaß beim suchen eines solchen fehlers (fobar.cpp und Fobar.cpp können beide gültigen code haben, nur andere versionen...).
Quoted
int fo= 5; int bar= 0;
int fobar[fo][bar];
das ist ungültig laut dem C++ Standard (Iso weiss die nummer nicht mehr ) aber g++ compiliert es ohne probleme und mekkern.
Source code |
|
1 2 3 4 5 6 7 8 9 10 |
/tmp> cat >a.cc void c() { int fo= 5; int bar= 0; int fobar[fo][bar]; } /tmp> gcc -c a.cc -pedantic a.cc: In function 'void c()': a.cc:4: error: ISO C++ forbids variable-size array 'fobar' a.cc:4: error: ISO C++ forbids variable-size array 'fobar' |
Quoted
Ein weiteres manko mit g++ ist das es erlaubt funktionen zu schreiben die einen wert/klasse/struktur als rückgabewert definiert haben, aber die funktion nix zurückgibt (viel spaß beim suchen nach solchen fehlern)
Source code |
|
1 2 3 4 5 6 7 8 |
/tmp> cat >b.cc int foo() { return; } /tmp> gcc -c b.cc b.cc: In function `int foo()': b.cc:3: error: return-statement with no value, in function returning 'int' |
Quoted
ok da hast du recht, als anfänger sollte man sich bei IDEs von dem GUI kram fernhalten, aber bei visual studio ist das zb kein problem... einfach bei neuem projekt konsolenanwendung und leeres projekt auswählen... schon ist man den ganzen autogenerierten mist los.
Quoted
Original von T2k
- groß und kleinschreibung bei dateinamen ist wichtig, es ist sogar möglich 2 quellcodedateien zu schreiben die sich nur in groß kleinschreibung unterscheiden... viel spaß beim suchen eines solchen fehlers (fobar.cpp und Fobar.cpp können beide gültigen code haben, nur andere versionen...).
Quoted
- Gibt soweit ich weiss keine vernünftige IDE unter linux die selbst Makefiles erstellen kann (wenn mann kein makefile generator hat, aber nen riesen projekt mit hunderten bis tausenden dateien schreibt und noch nen doofes makefile von hand schreiben soll, aber die IDE alle dateien etc scho drin hat, ist doch ma echt *hirnlos*)
Guru
Date of registration: Dec 11th 2001
Location: Hämelerwald
Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)
Quoted
Original von denial
Quoted
Ein weiteres manko mit g++ ist das es erlaubt funktionen zu schreiben die einen wert/klasse/struktur als rückgabewert definiert haben, aber die funktion nix zurückgibt (viel spaß beim suchen nach solchen fehlern)
Source code
1 2 3 4 5 6 7 8 /tmp> cat >b.cc int foo() { return; } /tmp> gcc -c b.cc b.cc: In function `int foo()': b.cc:3: error: return-statement with no value, in function returning 'int'
Source code |
|
1 2 3 4 |
int foo() { // mach was, nur kein return } |
Erfahrener Schreiberling
Date of registration: Oct 9th 2002
Location: da drüben, gleich dort.
Occupation: Warum? Hmm, weil ich sonst nix mit meiner Zeit anzufangen weiß :D
Quoted
Original von denial
...gcc -c a.cc -pedantic...
Source code
1 2 3 4 5 6 7 8 /tmp> cat >b.cc int foo() { return; } /tmp> gcc -c b.cc b.cc: In function `int foo()': b.cc:3: error: return-statement with no value, in function returning 'int'
Guru
Date of registration: Dec 11th 2001
Location: Hämelerwald
Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)
Warum sollte ich Warnungen ignorieren?Quoted
Original von T2k
...und warnungen helfen nicht wenn man diese ignoriert
Erfahrener Schreiberling
Date of registration: Oct 9th 2002
Location: da drüben, gleich dort.
Occupation: Warum? Hmm, weil ich sonst nix mit meiner Zeit anzufangen weiß :D
Quoted
Original von julianr
...
Und btw darf man in beliebigen Funktionen das return weglassen, weil manche Funktionen nur existieren, um eine Exception zu schmeißen - und mangels Exception-Spezifikationen kann der Compiler dann natürlich nicht ahnen, was man vorhat und muss es durchgehen lassen.
Source code |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
struct FOBAR{ int fo; float bar; }; FOBAR fobar1(){ FOBAR f= {10, 12.0f}; } FOBAR fobar2(){ FOBAR f= {10, 12.0f}; if(false) throw 4; //das if is nur da um ne warnung zu erzeugen } int main(int argc, _char* argv[]) { FOBAR f1= fobar1(); FOBAR f2= fobar2(); return 0; } |