C++, lohnt es sich
-
BillyTheMaunsi schrieb:
<b>lohnt es sich mit C++ zu programmieren, kann man damit 100%ig Programme wie Microsoft Word programmieren ?</b>
Zumindest C gehört eigentlich zum absoluten Pflichtprogramm für jeden Programmierer. Und da man auch oft auf C++ Code stößt, sollte man wenigstens was damit anfangen können. Inwiefern du damit dann ernsthaft programmierst, kannst du davon abhängig machen, wieviel Spaß du daran hast.
-
Das ist ja cool, und kann ich mir damit zum Beispiel auch einen eigenen Browser basteln ? Währe schon lustig dann könnte ich in der Schule meinen eigenen Browser verkaufen :-)...
Ich habe noch eine andere Frage die passt nicht hier hin das weis ich, aber wenn mir jemand sagen könnte wie ich JavaScript in meinem Browser wieder aktiviere, seit ich so nen komischen .32/blaster Wurm hatte läuft nigs mehr. Und ich bekomme es einfach nicht hin.
-
äh, einen eigenen browser kannst du schon machen... prinzipiell würd ich mal sagen es geht so ziemlich alles was du dir vorstellst (vollstes vertrauen in c++ *g*)...
aber wenn du noch nicht mal angefangen hast mit c++, dann wirst du wohl erstmal seeeehr viel lesen, lernen, üben, programmieren müssen um deinen eigenen browser in der schule verkaufen zu können
-
An deiner Stelle würde ich erst C lernen und beherrschen. Erst danach würde ich mich mit der Erweiterung C++ beschäftigen. Wieso?
Wenn du sofort mit C++ anfängst, dann fragst du dich die ganze Zeit: wieso templates?, wieso Exception-Handling?, usw...
Wenn du die "Nachteile" von C nicht kennst, dann siehst du die Vorteile von C++ nicht ein!
um z.B. nur einen Vorteil von C++ zu nennen:
C-Code
void test(void (*error_handler)(ErrorType err_type, void *special));
um eine einheitliche Fehlerbehandlung anzubieten.
In CPP jedoch wirfst du einfach eine Exception aus:
throw "Out Of Mem";
und verzichtest auf lange und unübersichtliche Deklarationen...
-
gh0st124 schrieb:
An deiner Stelle würde ich erst C lernen und beherrschen. Erst danach würde ich mich mit der Erweiterung C++ beschäftigen.
Siehe FAQ - dann weisst du warum das nicht klug ist.
Wenn du sofort mit C++ anfängst, dann fragst du dich die ganze Zeit: wieso templates?, wieso Exception-Handling?, usw...
Man kann auch ordentliches C++ ohne Exception und Templates programmieren.
Wenn du die "Nachteile" von C nicht kennst, dann siehst du die Vorteile von C++ nicht ein!
Bloedsinn.
C++ ist grundlegend anders als C.Bitte C++ nicht als Erweiterung zu C sehen, sondern als eigene Sprache, die Kompatibilitaet zu C beinhaltet.
-
Siehe FAQ - dann weisst du warum das nicht klug ist.
welches meinst du?
Man kann auch ordentliches C++ ohne Exception und Templates programmieren.
du kannst sogar ohne Klassen C++ programmieren (machst du vielleicht sogar), jaja, nur ist das
1. verdammt dämlich
2. verdammt lahm (C++ Compiler im Vrgl. zu C Compiler)Außerdem weiß man nie genau, ob man denn nun reinen C-Code vor sich hat.
Bloedsinn.
C++ ist grundlegend anders als C.das hätte ich jetzt nicht gedacht
Bitte C++ nicht als Erweiterung zu C sehen, sondern als eigene Sprache, die Kompatibilitaet zu C beinhaltet.
dann sag mir mal bitte den Unterschied zwischen
C++ = Erweiterung zu C
und
C++ = eigene Sprache, die kompatibel zu C ist.ich meine das Wort 'Erweiterung' sagt:
1. nicht dieselbe Sprache
2. baut auf diese Sprache auf und ist somit kompatibel...
-
Siehe: http://www.c-plusplus.net/forum/viewtopic.php?t=41467
Du löst ein Problem in C++ grundlegend anders als in C. Du hast Möglichkeiten das Problem zu abstrahieren - du hast ganz andere Möglichkeiten.
Natürlich kann man auch 'C mit Klassen' Programmieren, aber das ist kein echtes C++. Aber man kann sehr wohl echtes C++ ohne Templates und Exception programmieren - das ist zwar nicht ideal, aber durchaus vernünftig möglich.
Als Erweiterung sehe ich zB 'RTTI' oder 'Templates' sind eine Erweiterung zu C++. Aber C++ ist weit mehr als nur ein paar Features zu C dazugepackt.
Du kannst in C++ Programme schreiben die absolut nix mit C zu tun haben - das bedeutet für mich nicht: Erweiterung. Denn C ist ein Ballast den C++ mit sich rumschleppt, und der versucht wird, soweit wie möglich zu verringern. Aber leider geht aus der Geschichte von C++ hervor, dass man C Kompatibel bleiben will/muss. Dies ist einer der größten Kritikpunkte an C++.
-
Shade Of Mine schrieb:
Dies ist einer der größten Kritikpunkte an C++.
Du meintes sicher Vorteile, oder?
-
Jester schrieb:
Shade Of Mine schrieb:
Dies ist einer der größten Kritikpunkte an C++.
Du meintes sicher Vorteile, oder?
Nein. Es war der Grund warum C++ akzeptiert wurde. Aber der Ballast ist tw. schlimm - er verhindert, dass sich C++ viel weiter entwickeln kann.
Und C hat den Schritt weg von C++ ja mit C99 gemacht. Man will C nicht mehr als 'Untermenge' von C++ sehen. Das kam natürlich viel zu spät - wie alles was standardisiert wird
-
gh0st124 schrieb:
du kannst sogar ohne Klassen C++ programmieren (machst du vielleicht sogar), jaja, nur ist das
1. verdammt dämlich
2. verdammt lahm (C++ Compiler im Vrgl. zu C Compiler)Wie kommst du darauf? Warum sollte ein C++ Compiler nicht in der Lage sein gleichwertigen Maschinencode bei gleichem Input zu liefern? Mir scheint du hast da etwas falsch verstanden.
-
Was ist denn an der Kompatibilität so schlimm? Worin behindert die Kompatibilität zu C denn C++, kannst Du da vielleicht mal ein Beispiel nennen?
Inwiefern will sich C denn von C++ entfernen, und warum wollen die beiden Standardisierungskommittees dann zusammen arbeiten um maximale Kompatibilität zu erzielen?
-
Jester schrieb:
Was ist denn an der Kompatibilität so schlimm?
Der C Ballast.
Die Kompatibilitaet ist gut, der Ballast stört.Inwiefern will sich C denn von C++ entfernen, und warum wollen die beiden Standardisierungskommittees dann zusammen arbeiten um maximale Kompatibilität zu erzielen?
C kann VLAs, C++ wird das nie können.
C hat jetzt ne Menge bei structs Initialisierungen verändert (um Ctors zu simulieren)
C hat restrict qualifier für Zeiger (was zeigt, dass C mehr auf Mikroprozessoren gehen will)Der C99 Standard hat klar gemacht, dass man nicht mehr eine Untermenge von C++ sein will. Denn C++0x wird keine meiner 3 genannten Punkte übernehmen - das bedeutet: keine Source Code kompatibilitaet mehr.
-
MaSTaH schrieb:
gh0st124 schrieb:
du kannst sogar ohne Klassen C++ programmieren (machst du vielleicht sogar), jaja, nur ist das
1. verdammt dämlich
2. verdammt lahm (C++ Compiler im Vrgl. zu C Compiler)Wie kommst du darauf? Warum sollte ein C++ Compiler nicht in der Lage sein gleichwertigen Maschinencode bei gleichem Input zu liefern? Mir scheint du hast da etwas falsch verstanden.
C++ ist halt langsamer. Ist doch logisch, oder? Jetzt hat man es schon so oft gesagt, dann muss völlig gleichwertiger Code unter C++ einfach langsamer sein.
-
du bist ja wohl der Obertroll @ Optimizer
don't feed it...
-
hi,
Shade Of Mine schrieb:
C kann VLAs, C++ wird das nie können.
was sind denn VLAs und wozu brauch man die? nur so aus interesse, ich fang grad mit programmierung an
grüsse busta
-
Hallo,
VLA steht für Variable Length Array.
Man kann in C99 Arrays mit erst zur Laufzeit bekannter Größe auf dem Stack anlegen. In C++ geht das nicht, man muß dann dazu new verwenden (oder besser auf einen der Container ausweichen).MfG Jester
-
..... schrieb:
du bist ja wohl der Obertroll @ Optimizer
don't feed it...
Ich hab wenigstens einen Namen.
-
Optimizer schrieb:
MaSTaH schrieb:
gh0st124 schrieb:
du kannst sogar ohne Klassen C++ programmieren (machst du vielleicht sogar), jaja, nur ist das
1. verdammt dämlich
2. verdammt lahm (C++ Compiler im Vrgl. zu C Compiler)Wie kommst du darauf? Warum sollte ein C++ Compiler nicht in der Lage sein gleichwertigen Maschinencode bei gleichem Input zu liefern? Mir scheint du hast da etwas falsch verstanden.
C++ ist halt langsamer. Ist doch logisch, oder? Jetzt hat man es schon so oft gesagt, dann muss völlig gleichwertiger Code unter C++ einfach langsamer sein.
wie kann ein völlig gleichwertiger Code denn langsamer sein? Dann wäre er ja wohl nicht völlig gleichwertig!
[EDIT] Im übrigen ist wohl ein sehr großer Teil der Geschwindigkeit vom Compiler abhängig, ich glaub das nennt man Optimierung
-
struct myStruct { int x; int y; };
void set(myStruct *param, int x_, int y_) { x = x_; y = y_; }
void myStruct::set(int x_, int y_) { x = x_; y = y_; }
Das z.B. ist völlig gleichwertiger Code. Vermutlich erstellt der C++ Compiler daraus sogar den selben Code wie der C-Compiler.
Oder ist vielleicht das böse C++ doch langsamer??
-
Ich sehe nix gleichwertiges...
Dein erstes Beispiel bekommt nen Pointer aufn Struct von Dir, tut da aber nix mit, und setzt dann zwei globale Variablen auf die Werte die in den Parametern übergeben wurden.
Das zweite dagegen ist so wie Deine struct definiert ist nicht kompilierbar, weil innerhalb der struct der Prototyp fehlt. Denke ich mir den aber dazu, bewirkt das was ganz anderes als das erste Beispiel... Es verändert nämlich keine Globalen Vars sondern die der jeweiligen Instanz des structs.PS: Da int x und y aber eh public sind, würde ich sie direkt manipulieren, da ich dann den Funktionsaufruf spare