Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

KarlKaracho

Praktikant

  • "KarlKaracho" is male
  • "KarlKaracho" started this thread

Posts: 25

Date of registration: Oct 10th 2005

Location: Hannover-Kleefeld

1

Thursday, November 24th 2005, 2:42am

Einstieg C++

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??


gruß, kk

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

2

Thursday, November 24th 2005, 7:42am

RE: Einstieg C++

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??
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.
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

hyperion

Erfahrener Schreiberling

  • "hyperion" is male

Posts: 422

Date of registration: Oct 8th 2004

3

Thursday, November 24th 2005, 10:10am

Hallo,

alles halb so wild. Aber wie Joachim schon sagte, fang mit nem Texteditor an (unter Windows Notepad, gibt aber bessere). Hol Dir vielleicht den DevCpp, wenn Du umbedingt ne IDE benutzen möchtest. Dann als Compiler den mingw.

Falls Du unter Linux bzw. Unix anfängst, ist es noch einfacher. GCC ist eigentlich überall dabei und ein Editor wirste da auch schnell finden (Vim, Emacs, Nano, Joe, usw.).

Viel Spass!

PS:
Wegen Tutorials such doch einfach im Netz, gibt genug dort.
"Der Klügere gibt nach! Eine traurige Wahrheit, sie begründet die Weltherrschaft der Dummheit." --Marie von Ebner-Eschenbach

T2k

Erfahrener Schreiberling

  • "T2k" is male

Posts: 339

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

4

Thursday, November 24th 2005, 12:11pm

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 :D )
Die zweithäufigste Todesursache eines Soldaten ist das Gewicht seines Rückentornisters ("http://olnigg.de/" Aug05/Nr120)

This post has been edited 1 times, last edit by "T2k" (Nov 24th 2005, 12:11pm)


ktm

Erfahrener Schreiberling

5

Thursday, November 24th 2005, 12:15pm

Meine Empfehlung: als Editor SciTE (Gutes Syntax-Highlighting, und cross-platform; ich kenn auch einige, die auf UltraEdit schwören, der ist aber Windoze-exklusiv), und als Compiler wie gesagt gcc, bzw unter Windows den MinGW (ist quasi dasselbe).
An "richtigen" IDEs kann ich dann (für später) Visual Studio empfehlen, alles von Borland, das DOS-Turbo-Pascal mal ausgenommen, fand ich irgendwie etwas gewöhnungsbedürftig und "ungemütlich" (aber eigentlich fang ich immer mit SciTE an, und steig dann erst um, wenn es zu viele Einzeldateien werden)

edit:

Quoted

und noch ein tip: vermeide linux!!! ich als bekennender linuxhasser kann nur sagen: entwickeln unter linux ist schrott

Was gut ist und was nicht, soll bitteschön mal jeder für sich selbst rausfinden, okay? Unter Linux muss man wenigstens nicht alle paar Monate alles nochmal neu schreiben, nur weil Muckelsoft entscheidet, dass z.B. OpenGL von Niemandem mehr benötigt wird (da werden sich die ganzen CAD-Profis noch umschauen, und/oder Unmengen in neue GraKas investieren müssen...)...

This post has been edited 1 times, last edit by "ktm" (Nov 24th 2005, 12:23pm)


Posts: 60

Date of registration: Oct 10th 2005

6

Thursday, November 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 :D )



Rischtisch! Weg mit dem Eskimo-Huhn !

Finde eine IDE ist immer besser als das urprüngliche Compiler-zu-Texteditor Gehüpfe.

Falls noch nicht bekannt : http://www.c-plusplus.de/cms/

Hier dürfte alles was du brauchst zu finden sein. Die Leute im Forum sind meistens auch sehr hilfsbereit.

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

7

Thursday, November 24th 2005, 12:29pm

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.
Mit Texteditor meine ich nicht Notepad, sondern schon einen Editor mit Syntaxhighlighting und automatischer Codevervollständigung.

Quoted

und noch ein tip: vermeide linux!!! ich als bekennender linuxhasser kann nur sagen: entwickeln unter linux ist schrott
Warum?

Quoted

und nochmals: programmieren/entwickeln heißt nicht funktionen/klassen/strukturen auswendig zu können!
Wer hat das denn behauptet?

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?
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.

Natürlich ist es sinnvoll, daß eine IDE so viel wie möglich automatisiert, aber gerade für Einsteiger halte ich es nicht für gut, wenn zu viel verschwindet. Dies hat zur Folge, daß kein Wissen über eben diese Details entsteht, und die Qualität bei den entwickelten Programmen auf der Strecke bleiben kann.

Für den Einstieg finde ich es sehr wichtig zu wissen, was überhaupt passiert. Später kann dann eine mächtige IDE eine Erleichterung sein. Dies aber auch nur dann, wenn ich weiß, was die IDE eigentlich tut.
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

hyperion

Erfahrener Schreiberling

  • "hyperion" is male

Posts: 422

Date of registration: Oct 8th 2004

8

Thursday, November 24th 2005, 12:47pm

Ich bin ebenfalls der Meinung, dass eine IDE beim erstellen der ersten Programme nur hinderlich ist.

Zum lernen der Sprache muss man auch wissen, wie die Main Funktion aussieht usw. Eine IDE (zb. Visual Studio) nimmt einem alles ab und klatscht in jede Datei soviel Zeug rein, was für einen Anfänger vollkommen unnötig ist. Er braucht einen simplen Source Code Editor mit ein wenig Syntax highlighting und event. einem Compile Button. Das reicht. Für das erlernen der Sprache sind die meisten Funktionen eine IDE komplett unnötig.
"Der Klügere gibt nach! Eine traurige Wahrheit, sie begründet die Weltherrschaft der Dummheit." --Marie von Ebner-Eschenbach

julianr

Erfahrener Schreiberling

Posts: 298

Date of registration: Oct 13th 2005

Location: I live in a giant bucket.

9

Thursday, November 24th 2005, 12:58pm

???
Man kann in ziemlich jeder IDE, sogar Delphi mit einem minimalen Hello World anfangen... natürlich sollte man das dann auch, wer gleich irgendeine MFC-Template-App umschreiben will ist selbst Schuld. Und von Texteditor & Compiler rate ich dringend ab (auch wenn man C++s nerviges Kompilierungssystem verstehen muss), ebenso von "besser als nichts"-Freeware à la DevC++. Mit einem komfortablen Debugger, und MSVC ist da echt klasse, kann man nämlich gerade _mehr_ verstehen. Etwas klappt nicht? Zur Laufzeit kurz nen Haltepunkt rein, per Hovern alle Variablen auswerten, evtl. sogar Codestellen ändern und ins laufende Programm reinkompilieren. _Das_ macht das Verstehen einfacher. Und da ist das MSDNAA doch echt mal ein Segen.

cowhen

Muuuh!

  • "cowhen" is male

Posts: 1,374

Date of registration: Dec 13th 2001

10

Thursday, November 24th 2005, 3:11pm

Zum org. Posting:

Unter Linux ist Anjuta eine nette IDE, die einige Hilfen bietet, aber nicht zu viel macht.
Ich würde auch empfehlen, die Finger erstmal von der IDE KDevelop zu lassen. Besonders einem Einsteiger werden da graue Haare wachsen.
plenty of time to relax when you are dead

T2k

Erfahrener Schreiberling

  • "T2k" is male

Posts: 339

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

11

Thursday, November 24th 2005, 3:30pm

Quoted

Original von Joachim
...

Quoted

und noch ein tip: vermeide linux!!! ich als bekennender linuxhasser kann nur sagen: entwickeln unter linux ist schrott
Warum?

eher aus persönlichen gründen. um einige zu nennen:
- 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...).
- 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*)
- zwischen GCC/g++ und dem Visual Studio compiler gibt es differenzen die auf ein nicht befolgen des standarts (beiderseits) zurückzuführen sind, aber die sachen die gcc unterstützt/erlaubt (und die nicht dem standard entsprechen) bringen mich immerwieder zur weißglut wenn ich sie sehe (das sieht eher nach java als nach c++ aus)...und da ich gxx mit linux in verbindung setzte (gibt ja keine vernünftige alternative dort AFAIK)... ein kleines beispiel:
int fo= 5; int bar= 0;
int fobar[fo][bar];
das ist ungültig laut dem C++ Standard (Iso weiss die nummer nicht mehr 8o ) aber g++ compiliert es ohne probleme und mekkern. 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)
-usw...

Quoted


Quoted

und nochmals: programmieren/entwickeln heißt nicht funktionen/klassen/strukturen auswendig zu können!
Wer hat das denn behauptet?

sorry das kam mit dem texteditor entwickeln so rüber... wenn er intellisense und den ganzen schnickschnack hat is ok :D

Quoted


... GUI-Details ...

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.
Die zweithäufigste Todesursache eines Soldaten ist das Gewicht seines Rückentornisters ("http://olnigg.de/" Aug05/Nr120)

denial

Erfahrener Schreiberling

  • "denial" is male

Posts: 394

Date of registration: Feb 18th 2003

Location: Göttingen

Occupation: Linux Coder (ex Mathe SR Inf Student)

12

Thursday, November 24th 2005, 7:53pm

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...).

Ja, das ist ätzend, wenn man ein Windows Programm nach Linux portieren will und diese unfähigen Programmierer sich nicht an eine Schreibweise halten konnten....

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 8o ) 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.

Microsoft sieht das wohl anders. Als ich mir als naiver kleiner Junge MS Visual C++ 1.0 (14 Disketten) gekauft habe, ging das nämlich nicht.
Entweder man machte ein normales Windows Programm und fing bei WinMain an zu Programmieren, oder man mußte so eine verkrüppelte pseudo-ansi-c-dos-emu-library nehmen und ein QuickWin Programm erzeugen.
QuickWin Programme wurden wie DOS Programme geschrieben. Das Programm wurde dann aber automatisch eine MDI Anwendung mit zwei Fenstern, für Textmodus und für Grafik.
Natürlich hatte man auch die, von Microsoft ausführlichst dokumentierte und deshalb wohl präferierte, Möglichkeit mit 5 Klicks eine MFC Applikation mit allem drum und dran zu Basteln.

Das einzig Brauchbare war die Doku.. Naja, ein Sechstel davon. Im einzelnen die Subbücher "C++ Tutorial" und "Programmiertechniken". Das C++ Buch ist aber nicht mehr mit heutigen vergleichbar. 1993 gab es wohl noch keine Templates, Namespaces, dynamic_cast, Exceptions und die STL.

cowhen

Muuuh!

  • "cowhen" is male

Posts: 1,374

Date of registration: Dec 13th 2001

13

Thursday, November 24th 2005, 9:24pm

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...).

Lol...

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*)

Automake ist z.B. in KDevelop integriert.
plenty of time to relax when you are dead

julianr

Erfahrener Schreiberling

Posts: 298

Date of registration: Oct 13th 2005

Location: I live in a giant bucket.

14

Thursday, November 24th 2005, 9:39pm

C++ wurde erst 98 standardisiert und die Compiler fangen jetzt erst an, sich dem Standard anzunähern, der zudem auch tlw höchst idiotisch ausgearbeitet wurde. Von daher sollte man bei der Argumentation in der Gegenwart oder näheren Vergangenheit bleiben...

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

15

Thursday, November 24th 2005, 9:45pm

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'

Ich vermute, T2k meinte eher sowas:

Source code

1
2
3
4
int foo()
{
// mach was, nur kein return
}

In diesem Fall hilft (wenn ich die Doku richtig verstehe) die gcc-Option -Wreturn-type. Aber ich halte es ohnehin für sinnvoll, immer mit eingeschalteten Warnungen (-Wall) zu übersetzen.
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

T2k

Erfahrener Schreiberling

  • "T2k" is male

Posts: 339

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

16

Thursday, November 24th 2005, 11:05pm

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'


siehe Joachims post zu dem letzteren ...und warnungen helfen nicht wenn man diese ignoriert (und wenns denn nen fehler verursacht hat man erstma 100+ warnungen)... und zum ersteren, oho... trixxor :D nur ich glaube knapp 90% der gcc user haben nie von dieser option gehört.

wie is eigentlich eclipse mit dem c++ plugin? is das überhaupt brauchbar? sonst gibst ja unter linux nur anjuta, kdevelop und devcpp wobei ich letzeres nie getestet habe.
Die zweithäufigste Todesursache eines Soldaten ist das Gewicht seines Rückentornisters ("http://olnigg.de/" Aug05/Nr120)

cowhen

Muuuh!

  • "cowhen" is male

Posts: 1,374

Date of registration: Dec 13th 2001

17

Friday, November 25th 2005, 12:00am

Quoted

Original von T2k
sonst gibst ja unter linux nur anjuta, kdevelop und devcpp
Eine gewagte Aussage ;)

Quoted

wobei ich letzeres nie getestet habe.
Kein Wunder, dev-c++ ist ja auch nur unter Windows lauffähig.
plenty of time to relax when you are dead

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

18

Friday, November 25th 2005, 11:12am

Quoted

Original von T2k
...und warnungen helfen nicht wenn man diese ignoriert
Warum sollte ich Warnungen ignorieren?
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

julianr

Erfahrener Schreiberling

Posts: 298

Date of registration: Oct 13th 2005

Location: I live in a giant bucket.

19

Friday, November 25th 2005, 6:16pm

Weil man in C++ dem Compiler tlw so indirekt mitteilt, was man eigentlich tun möchte, dass man regelmäßig in einem Berg aus Warnungen erstickt.

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.

T2k

Erfahrener Schreiberling

  • "T2k" is male

Posts: 339

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

20

Friday, November 25th 2005, 9:00pm

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.

dann sollte der compiler aber intelligent genug sein dieses selber zu erkennen (der Visual studio .net 03 compiler tut dieses korrekt!)

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;
}

Visual studio hat kein problem mit fobar2 (außer eben der warnung das nicht alle steuerelemente nen wert zurückgeben) fobar1 ist ungültig
doch ich kann beim besten willen nicht sagen welches resultat fobar1 unter linux/gxx liefert

ps: schade das visual studio nicht erkennt das der code in der if bedingung nie ausgeführt wird und dieses als funktion ohne rückgabewert behandelt aber die welt ist nicht perfekt (zumindest ist sie besser als unter linux :rolleyes:)

das mit DevC++ nicht unter linux... ich dachte echt es gibt da ne linux version...
Die zweithäufigste Todesursache eines Soldaten ist das Gewicht seines Rückentornisters ("http://olnigg.de/" Aug05/Nr120)