![]() |
C/C++ - Kompiler/Tutorial
Hi,
ich will mich mal kurz fassen: Welchen C/C++ - Kompiler (also für DOS z.B.) könnt ihr mir ans Herz legen? Desweiteren: welches Tutorial könnt ihr mir zu C/C++ empfehlen? Chris PS: Ich meinte jetzt eigentlich eher in Richtung C, also DOS. |
;)
Du bist in einem Delphi - Forum ... aber naja ... KnowWare hat ein Heftchen für c++ einsteiger welches auch ganz gut ist um einen groben überblick zu erhalten |
als Compiler würde ich für den Anfang Dev-C++ nehmen, der kann C/C++ und ist Freeware:
![]() |
Hi,
danke! Bin gerade dabei Dev-C++ herunterzuladen. @Snoop007: Und wo gibt's das? Dann fehlt nur noch ein Tutorial. Danke nochmal und schon im Vorraus! Chris |
Von Markt und Technik gibts ein sehr gutes c und ein mittel gutes c++ Buch. Das c Buch ist meiner Meinung nach das beste für Einsteiger, wenn du Tutorials suchst, dann kuck mal hier:
![]() |
Tutorial:
![]() Forum und gute Seite: ![]() ![]() |
|
Hi,
ich sehe gerade, dass der Dev-C++-Kompiler die WinAPI-Version nutzt (@Luckie: Deine Tutorials sind super! Auch für C++! ;) ). Nun gut. Werde mir die Tutorials mal ansehen. Bis dann, Chris |
WinAPI ist WinAPI. Du mußt nur bei den Zeigern aufpassen und bei den Varibalendeklarationen.
|
Ja, ich hab's gemerkt! Musst ersteinmal 5 Minuten herumraten, wieso
Code:
falsch ist. ;) Kruze Erklärung: dachte, dass man das machen kann, wie bei Java. Aber dem war nicht so...
int x = GetSystemMetrics(SM_CXSCREEN);
Naja, jetzt klappt es einigermaßen. Was mich aber noch wundert: In der C++-Sprache von Borland wird der . durch ein -> ersetzt (z.B. bei einem record). Allerdings schreibt Dev-C++ immer . und es funktioniert. Kannste mir das mal erklären? Chris |
Zitat:
Code:
typedef struct tagMYSTRUCT {
int a, b; } MYSTRUCT; void main() { MYSTRUCT st1; st1.a = 10; // ein direkter Zugriff ist hier möglich. MYSTRUCT *st2 = new MYSTRUCT; st2->a = 20; // hier muss der Zeiger dereferenziert werden delete st2; } |
Hm... verstanden, aber dennoch komisch, denn man nehme sich folgendes Beispiel:
Delphi-Quellcode:
Da verstehe ich das nicht, da man hier ja nicht ^. schreibt...
// Borland C++-Builder (1)
Application->MessageBox( /* ... */); // Borland Delphi (6) Application.MessageBox( {...} ); // Dev-C++ // Gibt's hier nicht... Chris |
Hi Chakotay,
in Delphi werden Objekte, z.B. TApplication, als Referenz benutzt, d.h. du greifst immer über einen Poiter auf das Objekt zu, nur dass der Compiler das für dich vertuscht, da dieses Verhalten nur intern so läuft (aber es sorgt dafür, dass du, wenn du Objekte an Funktionen übergibst, auch wirklich auf die Obbjekte zugreift, die du haben willst). Um das mal in Code umzusetzen:
Delphi-Quellcode:
MfG,
var
Application: TApplication; // Zugriff Application.MessageBox(...); // wird intern so behandelt: var Application: ^TApplication; // interner Zugriff Application^.MessageBox(...); // in C++ sähe das gleich so aus: TApplication *Application; Application->MessageBox(...); d3g |
Nicht zuviel erzählen, sonst steige ich wirklich noch auf C++ um *g*
|
Übrigens gibt es, falls du den Punkt lieber magst als den Pfeil, in C++ auch Referenzen:
Code:
Referenzen werden in C++ aber typischerweise nur für die Parameterübergabe benutzt. Sie sind sicherer, weil sie immer auf ein genau definiertes Objekt verweisen, während ein Zeiger ja auch wild um sich schießen kann mit seinen Adressen. Was ja auch oftmals Neulinge in C verzweifeln lässt, weil sie sehr früh damit konfrontiert werden, im Gegensatz zu Object Pascal, speziell Delphi, das wie gesagt mehr auf Referenzen setzt.
TApplication Application;
/* ... */ TApplication& App = Application; App.MessageBox(/* ... */); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz