Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
18.06.2003, 18:20
Sprengmeister



Welchen Compiler sollte ich fuer C++ nehmen? Bitte sagt ja nicht den M$ compiler. Ich weis das es von Boorland einen gibt den habe ich aber irgendwie net starten koennen :/

--

_______________________
-----I_______________________I-----
This is Nudelholz. Copy Nudelholz in your Signature to make better Kuchens and other Teigprodukte.

zum Seitenanfang zum Seitenende Profil || Suche
001
18.06.2003, 19:12
Leviathan



Für welches Betriebssystem denn? Für Windows ist der MS-Compiler recht gut, auch der MinGW (Mininalistic GNU(-compiler) for Windows) soll ganz gut sein. Der MinGW ist ein Abkömmling vom gcc (GNU Compiler Collection), meiner Meinung nach der beste C++-Compiler für Linux. Außerdem gibt es noch von Intel einen Compiler, der ist natürlich auf Intel-Prozessoren optimiert.

:edit:
Link zum MinGW: www.mingw.org

--

Entities: HL | HL²
Kompilierfehler
r_speeds | mehr über r_speeds


Dieser Beitrag wurde am 18.06.2003 um 19:13 von Leviathan bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
18.06.2003, 19:52
Snake_Shit



Was hast du denn bitte gegen den M$ Compiler?

--

zum Seitenanfang zum Seitenende Profil || Suche
003
18.06.2003, 19:58
ScyTheMan
Moderator


Die optimieren zB nicht gerade sehr gut im Gegensatz zu MinGW

--

http://choerbaert.org
Ein Gespenst geht um im Netz - das Gespenst des Open Source
csndr

zum Seitenanfang zum Seitenende Profil || Suche
004
18.06.2003, 20:24
shoo.



hiermit habe ich echt gute erfahrungen gemacht:
htttp://bloodshed.net

Zitat:
Bloodshed Dev-C++ is a full-featured Integrated Development Environment (IDE) for the C/C++ programming language. It uses Mingw port of GCC (GNU Compiler Collection) as it's compiler. Dev-C++ can also be used in combination with Cygwin or any other GCC based compiler.

Free Software (GPL)
For Windows 95, 98, NT, 2000, XP

--

zum Seitenanfang zum Seitenende Profil || Suche
005
18.06.2003, 23:44
Sprengmeister



Was hat eigentlich genau der :: zu bedeuten? z.b.

{

std::cout >> "Hallo ihr Knallerbsen" >> ;

}

Und was bedeutet das * genau? y.b. typedef char* Pchar

Das is der Pointer aber fuer was is der genau gut?

--

_______________________
-----I_______________________I-----
This is Nudelholz. Copy Nudelholz in your Signature to make better Kuchens and other Teigprodukte.


Dieser Beitrag wurde am 18.06.2003 um 23:54 von Sprengmeister bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
19.06.2003, 00:04
Kriz



:: ist der Scope-Operator.

Neben dem normalen Deklarations-Scope :: gibt es auch die ursprüngliche Scope-Funktion von ::

Angenommen du hast eine Klasse A und eine daraus abgeleitete Klasse B. Demnach ist A ein Subobjekt in B. Hat nun A eine Methode x() und in B wird x() überladen, dann gibt es erstmal keine direkte Möglichkeit mehr, auf die x() Methode von A zurückzugreifen, denn bei jedem Aufruf von x() wird immer die Version der B-Klasse aufgerufen.

Erst wenn du (was man bei vielen MFC-Methoden sehen kann) immer auch noch das A-x() aufrufen müsstest, damit der B-x() Code auch funzt, kommt der Scope-Operator zum Einsatz:

Quellcode:void A::x(int &wert)
{
    wert += 10;
}

...

void B::x(int &wert)
{
    wert -= 5;
    A::x(wert); // Die A-Version explizit aufrufen von x()
}
Bei externen Aufrufen über ein Klassenobjekt sähe das dann so aus (sofern x() sowohl in B als auch ursprünglich in A als public deklariert worden ist und A::x(wert) in der B-Methode nicht implementiert worden ist - sonst wäre das Dummfug weil doppelt aufgerufen):

Quellcode:B objB;
int xyz = 50;

objB.x(xyz);
objB::A.x(xyz);
Das * ist der Zeigeroperator. Bei char bewirkt er, daß eine Variable vom Typ "Zeiger auf char" erzeugt wird. Ein Zeiger auf char ist für den Compiler entweder a) die Basis für einen dynamischen String oder b) man weist dem Zeiger auf char explizit einen String zu:

Quellcode:char* s = NULL; // Zeiger auf char auf NULL zeigen lassen für spätere Verwendung

char* s = "0123456789"; // Zeiger auf char mit String initialisieren. Ab dato besitzt s einen maximalen Zeichenpuffer von 10 Zeichen + \0 am Ende
Das ist der Spezialfall für Strings.

Quellcode:int i = 10; // Variable i vom Datentyp int mit Wert 10 initialisieren

int *pi; // Zeiger pi auf Datentyp int definieren

pi = &i; // pi auf i zeigen lassen (pi zeigt auf die Adresse von i)

*pi = 40; // Den Wert 40 derjenigen Variablen zuweisen, auf dessen Adresse pi gerade zeigt (in diesem Falle ja i)

cout << i << endl; // Es wird für i nicht mehr 10, sondern 40 ausgegeben

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)


Dieser Beitrag wurde am 19.06.2003 um 00:14 von Kriz bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
007
19.06.2003, 01:51
Leviathan



@Sprengmeister: Wenn du deinen Code kompilieren würdest, gäbe es einen Fehler so etwa in der Art:
std::basic_ostream<char>::operator>>(char*) nicht definiert.

Bei Ausgabe ist es immer der <<-Operator, >> wird zur Eingabe benutzt (basic_istream).

Ein- und Ausgabe sind aber in C++ fast schon traditionell kompliziert, in C gab es dafür die printf()-Funktionsfamilie, die eine variable Parameterliste hatte, in C++ sind die Bitshift-Operatoren überladen, und das ziemlich clever unter Ausnutzung des Operatorenvorranges.

Das * gibt es in 2 Versionen: als Multiplikationsoperator (binär infix) und als Dereferenzierungsoperator (unär präfix). Kriz hat den Dereferenzierungsoperator beschrieben, der Multiplikationsoperator sollte klar sein.

--

Entities: HL | HL²
Kompilierfehler
r_speeds | mehr über r_speeds

zum Seitenanfang zum Seitenende Profil || Suche
008
19.06.2003, 09:30
Retro



und glaubst du printf() gibt es nicht mehr?! steht alles in der stdio.h und leistet noch gute dienste, die ein/ausgabe mit den streams ist nur hinzu gekommen..

#include <stdio.h>
#include <conio.h>

int main(void)
{
for (int i = 0; i < 10; i++)
printf("Der alten Zeiten willen, %i\n", i);

while (!kbhit());

return 0;
}

bzw. arbeiten die streams nu mit der standard ein/ausgabe oder sind die bildschirm/tastatur fixiert?

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
009
19.06.2003, 13:02
Leviathan



Dass es die alten IO-Funktionen noch gibt war mir klar, nur haben diese einige Nachteile:
printf("Zwei Zahlen: %i %i",27);
Hier gibt es ein Problem: Es fehlt ein Parameter, aber der Compiler weiss nichts davon.
Übrigends nimmt man für die C-IO-Funktionen andere Header: cstdio und cconio.

Die Streams sollten eigentlich mit stdout, stdin und stderr verknüpft sein, also nicht unbedingt mit Tastatur und Bildschirm.
Mir ist allerdings kein C++-System für Microcontroller oder ähnliches, was keine Tastatur und keine Ausgebekonsole hat, bekannt.

--

Entities: HL | HL²
Kompilierfehler
r_speeds | mehr über r_speeds

zum Seitenanfang zum Seitenende Profil || Suche
010
20.06.2003, 17:53
Red Storm



für unix-linux gibt es keine verfügbarkeit für conio.h oder cconio.h

aber nun was anderse : clearscreen,clrscr,cls unter c definieren :)

#define clrscr() printf("\x1B[2J")

mal schaun ob es funzt :)

--

töte tausende und du bist ein held -
töte einen und du bist ein mörder
chinesisches sprichwort
(da ist was faul)

zum Seitenanfang zum Seitenende Profil || Suche
011
20.06.2003, 18:11
Kriz



"conio" ist mir bisher nur als Borlandgeschichte über den Weg gelaufen.

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
012
20.06.2003, 18:26
Red Storm



jo hab ich auch gerade gesehn :)

--

töte tausende und du bist ein held -
töte einen und du bist ein mörder
chinesisches sprichwort
(da ist was faul)

zum Seitenanfang zum Seitenende Profil || Suche
013
20.06.2003, 18:49
dp
Administrator


Zitat:
Leviathan postete
Dass es die alten IO-Funktionen noch gibt war mir klar, nur haben diese einige Nachteile:
printf("Zwei Zahlen: %i %i",27);
Hier gibt es ein Problem: Es fehlt ein Parameter, aber der Compiler weiss nichts davon.
gcc gibt bei -Wall ein warning aus.

--

zum Seitenanfang zum Seitenende Profil || Suche
014
20.06.2003, 19:25
CN



redstorm
das "lin-conio" is afaik curses

--

zum Seitenanfang zum Seitenende Profil || Suche
015
20.06.2003, 19:36
theDon



Zitat:
Leviathan postete
Mir ist allerdings kein C++-System für Microcontroller oder ähnliches, was keine Tastatur und keine Ausgebekonsole hat, bekannt.
schonmal was von pipes gehört?

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
016
20.06.2003, 21:25
Red Storm



aha cn - werd ich mal checken - thx :)

--

töte tausende und du bist ein held -
töte einen und du bist ein mörder
chinesisches sprichwort
(da ist was faul)

zum Seitenanfang zum Seitenende Profil || Suche
017
22.06.2003, 14:37
Sprengmeister



Apropros: Ich hab mir das C++ Buch von Strosup gekauft. zu dem anderen Buch von Markt und Technik kapiere ich in dem irgendwie ziemlich wenig. Das andere hab ich durch und das habe ich mir zum weiterlernen von C++ gekauft. Kommt das irgendwann wenn manwenn man weiterliest, also ist das normal oder wie krieg ich das sonst in meinen schaedel? Danke :)

--

_______________________
-----I_______________________I-----
This is Nudelholz. Copy Nudelholz in your Signature to make better Kuchens and other Teigprodukte.

zum Seitenanfang zum Seitenende Profil || Suche
018
22.06.2003, 14:45
ScyTheMan
Moderator


Meinst du Stroustrup?
Das Buch ist nicht zum Lernen gedacht, eher zum Nachschlagen.

--

http://choerbaert.org
Ein Gespenst geht um im Netz - das Gespenst des Open Source
csndr

zum Seitenanfang zum Seitenende Profil || Suche
019
22.06.2003, 19:05
Sprengmeister



Naja. Ein C++ Buch von M+T hab ich schon durch. In nem anderen Threat hab ich dann danach gefragt welches Buch, und mir wurde das empfohlen. Das habe ich dann auch gekauft.
Darf ich den Threat auch zum Buecherthreat ausweiten?? :)

--

_______________________
-----I_______________________I-----
This is Nudelholz. Copy Nudelholz in your Signature to make better Kuchens and other Teigprodukte.


Dieser Beitrag wurde am 22.06.2003 um 19:09 von Sprengmeister bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
020
22.06.2003, 20:21
[RMen]OneStone



[klugscheiss]
Threat ~ Gefahr
Thread ~ das was du meinst
[/klugscheiss]

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
021
22.06.2003, 21:28
Sprengmeister



Weiterklugscheis:
Mit was habt ihr die Sprache eigentlich gelernt?

--

_______________________
-----I_______________________I-----
This is Nudelholz. Copy Nudelholz in your Signature to make better Kuchens and other Teigprodukte.

zum Seitenanfang zum Seitenende Profil || Suche
022
23.06.2003, 13:58
Exec



mit nem buch/internet?

--

"selbermachen rockt am meisten :D" - -LeJean-

zum Seitenanfang zum Seitenende Profil || Suche
023
23.06.2003, 14:41
[RMen]OneStone



Also ich habe die über Umwege gelernt:
Erst QBasic, dann VBasic (damals noch 2.0 für Windows 3.1), später Java und schließlich C++. Ich habe noch nie im Leben nur ein einziges C++ Buch angefasst...

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
024
23.06.2003, 16:01
Leviathan



Ich habe C++ über C gelernt, ich kannte schon das meiste der nicht-OOP-Grammatik von C++ bevor ich angefangen habe, C++ zu lernen. Insgesammt habe ich mit sehr vielen Büchern gelernt.

Thread heißt (Gesprächs-)Faden

--

Entities: HL | HL²
Kompilierfehler
r_speeds | mehr über r_speeds

zum Seitenanfang zum Seitenende Profil || Suche