• 06.07.2025, 09:33
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

C++

Triniter

Senior Member

C++

Donnerstag, 16. Januar 2003, 19:51

Welchen C++ Compiler benutzt ihr? Habt ihr irgendwelche Tipps, oder erfahrungen? Bitte posten.

LiquidAcid

unregistriert

Re: C++

Donnerstag, 16. Januar 2003, 20:36

Unter Windows den MinGW, mein Kumpel hat mir geflüstert, dass seit neustem die 3.2 Version auch keine Probleme mehr macht. Unter Linux ganz normal GCC, ich habe die 2.96 und die 3.1 installiert. Funzt ohne Probleme.
IDEs sind Dev-C++ unter Windows und Anjuta unter Linux/Gnome. Ich habe auch den KDeveloper installiert, allerdings reicht der Anjuta für meine Bedürfnisse. Ausgabe läuft über FMOD (Sound), SDL (sollte man kennen ;)) und FLTK (GUI-Library).

Für Einsteiger lohnt sich natürlich auch der Visual C++ mit oder ohne .NET - mir reicht FLTK allerdings vollkommen und es ist nicht so überladen wie MFC. Von .NET halte ich sowieso recht wenig und da es auch nich unter Linux läuft (lässt man mal Mono außer Acht) ist es für mich auch rel. uninteressant. Contra bei VC++, es kostet Knete.
Dev-C++ ist kostenlos, ausgereift und bringt seinen Compiler/Linker (MinGW) gleich mit. Eine Installation und du hast eine komplette Entwicklungsumgebung. Dann noch schnell Fluid installiert und schon kann man sich on-the-fly seine FLTK Oberflächen zusammenbasteln.

cya
liquid

r1ppch3n

Moderator

Re: C++

Donnerstag, 16. Januar 2003, 20:36

borland c builder rox da house 8) ;D
einfach n geniales tool

crushcoder

God

Re: C++

Donnerstag, 16. Januar 2003, 21:02

bin gezwungenermaßen visual c++ nutzer, bzw war, im moment arbeite ich nicht damit.

ist wie alle ms produkte: man kommt zuerst recht schnell ans ziel, will man mehr und tiefer einsteigen muss man doppelt so hohe hürden nehmen wie bei anderen produkten.

an compiler sollte man (keine eigene erfahrung, aber was man so hört...) lieber den von intel benutzen, den kann man in vc++ recht einfach einbinden, bei den anderen sollts auch kein prob sein.

Metroworks Codewarrior gibts auch noch, soll aber buggy sein.

meine traum-ide wird übrigens mit MacOS X kommen.
Ist dann aber Objective C.
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.

PAB

God

Re: C++

Donnerstag, 16. Januar 2003, 21:02

C-Builder? Das Ding is 'n Delphi mit C-Unterstützung.
Delphi rulz, aber den C-Builder find ich sinnlos.

r1ppch3n

Moderator

Re: C++

Donnerstag, 16. Januar 2003, 21:20

also mir gefällt der c builder noch am besten ::)
is irgendwo aba auch imma geschmackssache ;)

Man_In_Blue

Moderator

Re: C++

Donnerstag, 16. Januar 2003, 21:23

C++?

Ich hab's 3 Monate lang versucht und hab's dann schleßlich aufgegeben... nen Tachenrechner proggen bekomm ich gerade noch hin aber mit mehr bin ich dann überfordert...

Ist ned gerade einfach... Delphi is tmir da lieber... ;D
A sinking ship is still a ship!

r1ppch3n

Moderator

Re: C++

Donnerstag, 16. Januar 2003, 21:32

der unterschied is eigentlich ned groß ::)
programmiersprache is programmiersprache, bis auf ne etwas andre syntax (die man eigentlich schnell drauf ham sollte) san die sich alle ziemlich ähnlich ;)

PAB

God

Re: C++

Donnerstag, 16. Januar 2003, 21:35

C gefällt mir eigentlich ganz gut, kann man schön kompakt schreiben.
Aber die Stringverwaltung hat mich bis jetzt immer angeko**t :P

Man_In_Blue

Moderator

Re: C++

Donnerstag, 16. Januar 2003, 21:42

Zitat von »r1ppch3n@2100+«

der unterschied is eigentlich ned groß ::)
programmiersprache is programmiersprache, bis auf ne etwas andre syntax (die man eigentlich schnell drauf ham sollte) san die sich alle ziemlich ähnlich ;)


Delphi ist objekte basirt... das erleichter einiges... und C++ ist ja wohl kaum eine einsteigersprache bie etwa Pascal (bzw. Objekte Pascal/Delphi)

Zudem hab ich bei Delphi jemanden der mir helfen kann ;D
A sinking ship is still a ship!

r1ppch3n

Moderator

Re: C++

Donnerstag, 16. Januar 2003, 21:46

also c++ is auch ne objektorientierte sprache... ;D
gleub mir ma einfach wenn ich sage dass c++ und delphi sich SEHR ähnlich sind, mit den borland tools has sogar identische programmoberflächen für beide ;D

PAB

God

Re: C++

Donnerstag, 16. Januar 2003, 22:00

Pascal is auch als Lernsprache entwickelt worden.
Ich find sie etwas übersichtlicher, da der Quelltext ausführlicher ist.

Quellcode

1
2
3
4
for i := 0 to 10 do
begin
  a := a + 1;
end;


Quellcode

1
2
3
for(i=0;i<=10;i++){
  a++;
};


Die Sprache C selbst ist leistungsfähiger, aber deren Möglicheiten können einen Anfänger verwirren.

r1ppch3n

Moderator

Re: C++

Donnerstag, 16. Januar 2003, 22:05

komisch, ich find pascal eigentlich eigentlich unübersichtlicher weils so ausführlich is ::)
is aba wohl gewohnheitssache, anfangs kann c durchaus schoma ziemlich kryptisch wirken ;D

xx_ElBarto

God

Re: C++

Donnerstag, 16. Januar 2003, 22:09

ich hab gaaanz früher ma mit turbo pascal unter dos programmiert ;D
dann hatt ich irgendwann keiene lust mehr und so 2jahre später (;D) bin ich dann auf c++ mit microsoft visual studio , hat mir eigentlich auch ganz gut gefallen, und allzu schwer isses auch net (das programm und die programmier sprache ;)) und vorallem ist sie nicht irgendwann am ende. ok, ende is egal bei welcher nie, aber irgendwann bietet die anderen einfach keine neuen möglichkeiten mehr, oder es wird halt zu kompliziert
deshalb halte ich es nicht für eine schlechte idee, direkt mit c++ an zu fangen, und visual studio is auch recht brauchbar

LiquidAcid

unregistriert

Re: C++

Donnerstag, 16. Januar 2003, 22:09

Ich bezweifle, dass es große Ähnlichkeiten zwischen Pascal/Delphi und C/C++ gibt. Und über das IDE kannst du absolut nicht gehen, das trifft keine Aussage darüber wie ähnlich zwei Sprachen sind. C++ ist darüber hinaus viel objektorientierter als Delphi, Java geht noch einen Schritt weiter, wobei ich mich mit dieser Konzeption nicht so ganz anfreunden kann. Und für schnellen Code eignet sich reiner C-Code immer noch am besten, bespickt mit Assembler-Inlines läuft die Executable dann zu Höchstform auf.
Ich habe selbt einige Zeit mit Delphi bzw. Pascal programmiert und muß sagen, dass ich verglichen dazu die Möglichkeiten und den Syntax in C/C++ wesentlich besser finde. Polymorphie, virtuelle Funktionen, Templates, Exception, die ausgesprochen effiziente STL, das alles macht C++ zu der Programmiersprache. Mit Pascal/Delphi oder auch VB kommt man schneller sein Zeil und es ist bequemer damit Oberflächen zu erstellen, aber bei größeren Projekten macht sich C++ sehr bezahlt. Und ein guter Klassendesign kann man jederzeit in andere Projekte transferieren ohne sich Gedanken um die Anpassung zu machen.

Zu der Stringverwaltung. Ich habe bis jetzt damit keine Probleme gehabt. In C ist man zwar immer auf char-Arrays angewiesen, aber die Standardlibrary bietet doch eine gute Grundmenge von Funktionen um diese zu manipulieren. In C++ ist es ja noch simpler, einfach die string-Header einbinden und schon kann man eine leistungsfähige und sauber definierte Stringklasse benutzen. Zur Implementierung ist zu sagen, dass die STL unter VC++ wirklich unter alle Sau ist, da geht nix... Da sollte man sich die Mühe machen und STLport benutzen, das muß nur noch kompiliert werden und fungiert dann als STL. Deutlich bessere Performance und keine nervigen Fehler mehr. Unter Linux oder mit MinGW braucht man das nicht zwangsweise. Die STL des GCC ist robust, ich kann mich jedenfall nicht beklagen ;)

cya
liquid

LiquidAcid

unregistriert

Re: C++

Donnerstag, 16. Januar 2003, 22:13

Ich finde sowas schön:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#ifndef _BASIC_VECTOR_H_
#define _BASIC_VECTOR_H_

#include <GL/gl.h>                        // The OpenGL Header
#include <GL/glu.h>                        // And The GLu Heander

class basic_vector
{
public:
      // constructors
      basic_vector();
      basic_vector(basic_vector* vec);
      basic_vector(const GLfloat& x, const GLfloat& y, const GLfloat& z);
      basic_vector(const GLfloat* array_ptr);
      basic_vector(GLfloat* array_ptr);
      
      ~basic_vector(); // destructor
      
      basic_vector(const basic_vector& rhs); // copy-contructor
      
      // operators
      basic_vector& operator=(const basic_vector& rhs);
      
      basic_vector operator+(const basic_vector& rhs) const;
      const basic_vector& operator+=(const basic_vector& rhs);
      
      basic_vector operator-(const basic_vector& rhs) const;
      const basic_vector& operator-=(const basic_vector& rhs);
      
      basic_vector operator*(const GLfloat& scalar) const;
      const basic_vector& operator*=(const GLfloat& scalar);
      
      basic_vector operator/(const GLfloat& scalar) const;
      const basic_vector& operator/=(const GLfloat& scalar);
      
      GLfloat length() const;
      
      // normalizer methods
      const basic_vector& normalize();
      basic_vector getNormalized() const;
      
      // inverter methods
      const basic_vector& invert();
      basic_vector getInverted() const;
      
      // set methods
      void set(const GLfloat& x, const GLfloat& y, const GLfloat& z);
      void setX(const GLfloat& x) {xyz[0] = x;}
      void setY(const GLfloat& y) {xyz[1] = y;}
      void setZ(const GLfloat& z) {xyz[2] = z;}
      
      // get methods
      const GLfloat* get() const {return xyz;}
      const GLfloat& getX() const {return xyz[0];}
      const GLfloat& getY() const {return xyz[1];}
      const GLfloat& getZ() const {return xyz[2];}
      GLfloat* getXp() {return &xyz[0];}
      GLfloat* getYp() {return &xyz[1];}
      GLfloat* getZp() {return &xyz[2];}
      
      GLfloat dot(basic_vector& rhs) const;
      GLfloat angle(basic_vector& rhs) const;
      basic_vector cross(basic_vector& rhs) const;
      
      void interpolate(const basic_vector& v) const;
      void interpolate(const basic_vector& v, const GLfloat& step);
      
      basic_vector getInterpolation(const basic_vector& v) const;
      basic_vector getInterpolation(const basic_vector& v, const GLfloat& step) const;
      
      void ex() {glVertex3fv(this->xyz);}
      
private:
      GLfloat* xyz;
};

#endif


Da habe ich auch keine Probleme mich reinzudenken ;)

r1ppch3n

Moderator

Re: C++

Donnerstag, 16. Januar 2003, 22:19

von den möglichkeiten her geben sich delphi und c++ wirklich nicht sehr viel, manche sachen mögen anders gelöst sein aba letztlich kann delphi doch so einiges
ok, wirklich mögen tu i die sprache nich aba deshalb ist sie nicht zwangsläufig schlechter als andre...
der einzige wirkliche nachteil liegt letztlich in der performance, wirklich riesig is der unterschied aba auch hier nicht, wobei assembler sich auch in delphi recht einfach integrieren lässt ;)

letztlich ist eben doch alles geschmackssache, gibt genug leute die völlig von delphi begeistert sind und damit mindestens genausogut arbeiten können wie du mit c++ (kanns auch ned nachvollziehn, is aba so ;D)

PAB

God

Re: C++

Donnerstag, 16. Januar 2003, 23:10

Kommt immer auf den Einsatzbereich an.
Will ich ein normales Programm mit guter Oberfläche machen, nehm ich Delphi.
Ist das Programm codemäig anspruchsvoll, ist C wohl die besser Alternative.

crushcoder

God

Re: C++

Donnerstag, 16. Januar 2003, 23:22

tja, leider ist es im projekt-alltag der realität so, dass man die "sprache" nimmt, mit der sich etwas möglichst schnell programmieren lässt, nicht möglichst schön.

und wenn man dann excel-sheets importiert, über disketten, access und ne ms-oracle-odbc schnittstelle auf ne oracle db schiebt.. die dann auf ne andere db per ftp geschickt werden..
dann könnt man nur noch schreien was man da fürn mist programmieren soll.
innerhalb von 2 wochen. *regmalkurzauf*
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.

Daywalker313

Senior Member

Re: C++

Freitag, 17. Januar 2003, 19:27

Zitat von »LiquidAcid«

Ich finde sowas schön:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#ifndef _BASIC_VECTOR_H_
#define _BASIC_VECTOR_H_

#include <GL/gl.h>                        // The OpenGL Header
#include <GL/glu.h>                        // And The GLu Heander

class basic_vector
{
public:
      // constructors
      basic_vector();
      basic_vector(basic_vector* vec);
      basic_vector(const GLfloat& x, const GLfloat& y, const GLfloat& z);
      basic_vector(const GLfloat* array_ptr);
      basic_vector(GLfloat* array_ptr);
      
      ~basic_vector(); // destructor
      
      basic_vector(const basic_vector& rhs); // copy-contructor
      
      // operators
      basic_vector& operator=(const basic_vector& rhs);
      
      basic_vector operator+(const basic_vector& rhs) const;
      const basic_vector& operator+=(const basic_vector& rhs);
      
      basic_vector operator-(const basic_vector& rhs) const;
      const basic_vector& operator-=(const basic_vector& rhs);
      
      basic_vector operator*(const GLfloat& scalar) const;
      const basic_vector& operator*=(const GLfloat& scalar);
      
      basic_vector operator/(const GLfloat& scalar) const;
      const basic_vector& operator/=(const GLfloat& scalar);
      
      GLfloat length() const;
      
      // normalizer methods
      const basic_vector& normalize();
      basic_vector getNormalized() const;
      
      // inverter methods
      const basic_vector& invert();
      basic_vector getInverted() const;
      
      // set methods
      void set(const GLfloat& x, const GLfloat& y, const GLfloat& z);
      void setX(const GLfloat& x) {xyz[0] = x;}
      void setY(const GLfloat& y) {xyz[1] = y;}
      void setZ(const GLfloat& z) {xyz[2] = z;}
      
      // get methods
      const GLfloat* get() const {return xyz;}
      const GLfloat& getX() const {return xyz[0];}
      const GLfloat& getY() const {return xyz[1];}
      const GLfloat& getZ() const {return xyz[2];}
      GLfloat* getXp() {return &xyz[0];}
      GLfloat* getYp() {return &xyz[1];}
      GLfloat* getZp() {return &xyz[2];}
      
      GLfloat dot(basic_vector& rhs) const;
      GLfloat angle(basic_vector& rhs) const;
      basic_vector cross(basic_vector& rhs) const;
      
      void interpolate(const basic_vector& v) const;
      void interpolate(const basic_vector& v, const GLfloat& step);
      
      basic_vector getInterpolation(const basic_vector& v) const;
      basic_vector getInterpolation(const basic_vector& v, const GLfloat& step) const;
      
      void ex() {glVertex3fv(this->xyz);}
      
private:
      GLfloat* xyz;
};

#endif


Da habe ich auch keine Probleme mich reinzudenken ;)




Musst ja ned gleich mit OGL anfangen ;). Woher isn die Klasse, weil:

1. Super langsam auf neuen Computern.
2. Du hast nur die Header Datei reingemacht, die c++ datei is viel größer
3. Der Speicher wird dynamisch reserviert=ganz schlecht=abstürze wenn es schlecht gemacht ist.


Ich rate dir zu MS VC++ Standard. Es ist der beste und meistbenutzte Compiler und er hat NICHTS mit MFC zu tun, wenn du es nicht reinhaben willst. 90% der Tutuorials im Netz haben außerdem dsp/dsw dateien (=MSVC++ Projekte).