Möchte C++ / programmieren lernen
-
pale dog schrieb:
Xin schrieb:
rambo15 schrieb:
ne C is nich so guuuut für games und bots, lieber c++ is schließlich neuer !
Du musst C lernen, da man in C++ auch C programmiert. Ohne C geht es nicht.
ich kann mich erinnern, dass die meisten c++ fans in diesem forum das gegenteil behaupten

Dann bin ich mal gespannt, wie die C++ Fans ohne prozedurale Programmierung eine Methode schreiben.
Ich sehe keinen Sinn darin, von den Möglichkeiten erschlagen zu werden, wenn C erstmal reicht.
Xin schrieb:
Ich empfehle Dir ebenfalls Jürgen Wolfs "C von A-Z".
Das Buch ist sein Geld wert, aber auch online verfügbar:nein, das ist sogar ziemlich schlecht. es sind bzw. waren sehr viele fehler drin. surft mal durch die threads im ansi-c forum. da findet ihr einige vorschläge für gute c-bücher.[/quote]
Ich habe aus "Jetzt lerne ich C" von M&T gelernt. Das Buch war auch bescheiden, aber funktionierte.Ein Bekannter von mir lernt aus dem Buch von Jürgen Wolf, ich habe ein anderes Buch von ihm, dass ich gut finde und das A-Z mir mal in der Buchhandlung vorgenommen. Machte einen guten Eindruck.
-
Also ich find es ehrlich gesagt Quatsch, erst C und dann C++ zu lernen.
Am Ende gibt es dann nur einen Menschen mehr, der hier Spaghetticode, veraltete Header, FIL* und was weiß ich nicht alles anstatt der C++-Objekte dafüe nutzt.
-
Erst dachte ich ja Xin meint das ganze ironisch, aber scheinbar doch nicht ...
Mein guter Eindruck von Xin verfällt
-
The-Kenny schrieb:
Also ich find es ehrlich gesagt Quatsch, erst C und dann C++ zu lernen.
Am Ende gibt es dann nur einen Menschen mehr, der hier Spaghetticode, veraltete Header, FIL* und was weiß ich nicht alles anstatt der C++-Objekte dafüe nutzt.
FILE gehört auch zu C++. cout ist nicht die einzige Wahrheit und wird häufig über FILE implementiert. Nach Deiner Logik ist cout dann auch veraltet.
Es geht beim Programmieren lernen doch nicht darum, dass man sich einzelnen Dingen verschließt, sondern zu lernen, welche Möglichkeiten man hat und welche für die jeweilige Situation die richtige Technik ist.
KasF schrieb:
Erst dachte ich ja Xin meint das ganze ironisch, aber scheinbar doch nicht ...
Mein guter Eindruck von Xin verfällt
Es ist nicht ironisch.
Meiner Erfahrung nach ist es besonders am Anfang wichtig, den zu lernenden Bereich so klein wie möglich zu halten, damit die Lerndenen die Chance haben, einen Überblick zu bekommen und diesen Bereich zu verstehen.
Wenn ich C/C++ unterrichte, so beginne ich nach Möglichkeit unter der Linux-Konsole (nicht X), so gibt es nichts, was ablenkt oder die Sache komplizierter aussehen läßt, als es ist.Abgesehen von den Tutorien habe ich mit der Methode 'nen ganz guten Schnitt: ein Diplom-Informatiker, ein mathematisch-technischer Assistent (Entwickler) und jemanden, der sich zumindest auf die gaim-Entwicklerliste gesetzt hat. Er ist 17, heute Zeugnis bekommen und so meinte er vorhin, er möchte dann Informatik studieren.

Ich habe Tutorien gehalten, Die Leute sollten natürlich auch irgendwas mit Dipl-Inf. aus sich gemacht haben.Wir haben in der FH auch im ersten Semester gleich objektorientierte Programmierung gelernt. Mein Tutorium war dann im 3. Semester. Einer der Studenten sagte mir am Ende des Tutoriums, dass er nun verstanden hat, was die Profs versuchten ihm beizubringen.
Ich habe dieses C-Tutorium 3 Semester lang gemacht, jede Gruppe hatte einen anderen Prof, teilweise fähige Leute, trotzdem wußte keine der Gruppen ihr Wissen einzuordnen. Alle hatten mystische Vorstellungen von Objekten, die in einer großen schwarzen Box (Computer) schwebten und von einer Art Poststelle, die Nachrichten austauscht.Darum beginne ich lieber bei der Maschine und gehe dann weiter zu den höheren Konzepten, wobei die Leute auch verstehen, warum die Konzepte besser sind. Ansonsten bekommt man Knalltüten, die glauben, dass UML die Programmiersprache der Zukunft ist oder programmieren in Zukunft nur noch bedeutet "geilen 3D Ego-Shooter programmieren" ins Mikrophon zu sprechen.
Die Knalltüten sind meistens auch die Leute, die mir dann sagen, dass ich keinen Plan habe. Das kann ich ganz gut wegstecken.
Ich gehe mal davon aus, dass Du keine derartige Knalltüte bist und wenn deswegen Dein guter Eindruck von mir verfällt, so freut mich doch, dass es eine Zeit gab, in der Du einen guten Eindruck hattest. ;-D
-
Hört sich ja alles schön und gut an, aber meine persönliche Meinung ( und die von anderen Forenmitgliedern hier bestimmt auch ) ist es nicht mit C vor C++ zu beginnen.
Wenn man ehe danach C++ lernen will, könnte der C-Style einem den Code in C++ versauen. Wenn man mit C++ von Null anfängt, dann bekommt man auch alles von C-Strukturen aus C++ mit.
Ich habe noch nie ein C-Buch/Tutorial gelesen, trotzdem verstehe ich jeden C-Code und könnte auch selber in C programmieren.
Wenn ich mit C angefangen hätte, würde es mir schwerer fallen mich auf C++ einzustellen und die "C++ Konzepte" zu lernen.
Mit C anfangen -> C++ lernen
Mit C++ anfangen -> C verstehenNaja jeder sollte die für sich beste Methode auswählen, um sein Ziel zu erreichen und wenn du mit deinem Methoden Erfolg hast, dann sag ich dagegen auch nichts
( nur das ich es nicht so machen würde
).
-
KasF schrieb:
Hört sich ja alles schön und gut an, aber meine persönliche Meinung ( und die von anderen Forenmitgliedern hier bestimmt auch ) ist es nicht mit C vor C++ zu beginnen.
Und...?
Viele Leute lesen auch die Bildzeitung.
Die subjektive Meinung anderer ist doch kein Kriterium für meine subjektive Meinung. Anhand meiner Erfahrungen komme ich zu dem Schluss, dass Programmierung ein evolutionärer Prozess ist, den man als Programmierer nachvollziehen muss. Und das Funktioniert am besten so, wie er nunmal stattgefunden hat.KasF schrieb:
Wenn ich mit C angefangen hätte, würde es mir schwerer fallen mich auf C++ einzustellen und die "C++ Konzepte" zu lernen.
Mit C anfangen -> C++ lernen
Mit C++ anfangen -> C verstehenAls Pilot sollte ich erst den A380 fliegen und dann verstehe ich auch, wie ein Sportflugzeug funktioniert.
Ich fahre zuerst die Regatta und dann verstehe ich, wie man auf'm Baggersee eine Nußschale bewegt.
Ich mache erst den Führerschein für Schwertransporter, dann verstehe ich auch so, wie man einen PKW fährt.Ich bin Sporttaucher. Als Anfänger sollte man erstmal Bergungstauchgänge in 40m tief gelegenen Höhlen machen. Dann versteht man auch, wie man in 5 Metern Tiefe taucht.
Aus irgendeinem Grund tastet man sich bei den anderen Elementen vorsichtig vor, Schritt für Schritt. Bei der Informationsverarbeitung herrscht die Meinung vor, dass ein Sprung ins kalte Wasser eine gute Idee ist und gibt sich gleich das volle Programm.
Auf YouTube sah ich gestern ein alternatives "Ende" einer solchen Taucher-Geschichte. Ein Kurzfilm: Absprung Boot bis Tod waren 6 Minuten, wenn ich mich recht entsinne. Die Kamera hat's überlebt.
Genauso, wie ich es vermeiden würde, einen Anfänger bei einen schweren Tauchgang als Buddy zu haben, würde ich vermeiden, jemanden im Team zu haben, der OOP kann, aber nicht in der Lage ist, ohne OOP sauber zu arbeiten.
Ich schreibe meine Algorithmen jetzt bevorzugt generisch. Zuvor habe ich mich mit Basic, Assembler und C versaut.
Seit 21 Jahren programmiere ich, grade mal 9 Jahre davon in C++.
Was den C-Style angeht: Ich habe vor C++ OOP in C programmiert und mir dann ein Buch über C++ gekauft. Dort las ich dann, dass es für meinen C-Style in C++ passende Schlüsselwörter gibt.Was das Umstellen angeht: C ist in C++ enthalten. Konzepte, die man in C gelernt hat, werden in C++ nicht falsch, nur weil C++ alternative Konzepte anbietet.
KasF schrieb:
Naja jeder sollte die für sich beste Methode auswählen, um sein Ziel zu erreichen und wenn du mit deinem Methoden Erfolg hast, dann sag ich dagegen auch nichts
( nur das ich es nicht so machen würde
).Welche Methode für einen Anfänger am Besten ist, muss er entscheiden anhand der Informationen, die er von Menschen bekommt, die einen großen Überblick haben. Die Menschen mit dem großen Überblick vergessen dabei, dass sie sich den über Jahre angeeignet haben.
Mein erster Versuch C zu lernen scheiterte daran, dass ich den Compiler nicht überredet bekam, meinen Sourcecode zu kompilieren. Ich weiß nicht, ob der Code Fehler hatte, der Compiler verstand mich nicht und begann gar nicht erst zu kompilieren.
Bei dem Level starten die meisten.
-
Hallo
Also ehrlich gesagt, würde ich nicht erst c und dann c++ lernen, sondern gleich mit c++ anfangen. Ist imho einfacher zuverstehen. Gerade was strings und arrays (vectoren) angeht. Ob das in der Implementierung auf c-Sachen zutückgeht, kann mir ja erstmal egal sein und sollte mich erst später interessieren.
chrische
-
Xin schrieb:
Was den C-Style angeht: Ich habe vor C++ OOP in C programmiert und mir dann ein Buch über C++ gekauft. Dort las ich dann, dass es für meinen C-Style in C++ passende Schlüsselwörter gibt.
Ich würde gerne wissen wie man in C (Ansi C) wirklich OOP betreiben kann.
Ja, man kann quasi einen this-Zeiger emulieren; Aber was ist mit Zugriffsmodifikatoren (public/protected/private) und alles was über das einfache Klassenkonzept hinausgeht?Wenn du kein Problem mit Umstieg C => C++ hattest, und wirklich Objektorientiert programmierst, dann Hut ab. Ich kenne extrem viele Negativbeispiele die im wesentlichen C in Klassen verpacken und dies C++ und OOP nennen.
Xin schrieb:
Was das Umstellen angeht: C ist in C++ enthalten. Konzepte, die man in C gelernt hat, werden in C++ nicht falsch, nur weil C++ alternative Konzepte anbietet.
C++ ist nicht C (Und ja, etwas was im C99 Standard ist kann im C++98 Standard falsch sein), auch wenn es darauf aufbaut. Und ja, man kann auch weitgehend C unter C++ schreiben. Aber C++ ist weit mehr (Multiparadigmensprache).
Ich würde jeden Heute erst zu C++ raten wenn er C++ entwickeln will. Die Denkmuster sind anders. Zudem kann man dann noch immer sich Richtung C umschauen - doch in der Art der Entwicklung unterscheiden sich die Sprachen.
Zumal C++ weit mehr als nur OOP+C ist den es beinhaltet u.a.:
- Prozedurale Elemente (von C geerbt)
- Objektorientierte Elemente
- STL (Templatebasierende Programmierung)
- Templatemetaprogrammierungcu André
-
Nachtrag: Wenn ich ein Haus bauen müsste würde mich der Prozess wie die Ziegel nun hergestellt werden auch nicht im ersten Moment interessieren...
-
asc schrieb:
Zumal C++ weit mehr als nur OOP+C ist den es beinhaltet u.a.:
- Prozedurale Elemente (von C geerbt)
- Objektorientierte Elemente
- STL (Templatebasierende Programmierung)
- Templatemetaprogrammierungcu André
und das (meiner meinung nach wichtigste):elemente der funktionalen programmierung
Das Problem beim Umstieg von C nach C++ ist, dass viele das gefühl kriegen: C++ ist C mit Klassen, und das ist falsch.
-
chrische5 schrieb:
Gerade was strings und arrays (vectoren) angeht. Ob das in der Implementierung auf c-Sachen zutückgeht, kann mir ja erstmal egal sein und sollte mich erst später interessieren.
Vectoren sind keine Arrays und es wird Dir auch weiterhin egal sein.
Wenn Du was optimieren musst, wärst Du dankbar, Du wüsstest es.chrische5 schrieb:
Wenn ich ein Haus bauen müsste würde mich der Prozess wie die Ziegel nun hergestellt werden auch nicht im ersten Moment interessieren...
Nicht alles, was hinkt ist ein Vergleich. Ein A380-Pilot muss das Flugzeug auch nicht herstellen, aber trotzdem kleinere Flugzeuge fliegen können.
Als Häusle-Bauer wirst Du erst kleine Häuser bauen, bevor Du die Petronas-Towers nachbaust.Mach Dir nichts draus, ein Versuch war's wert. ;-D
asc schrieb:
Xin schrieb:
Was den C-Style angeht: Ich habe vor C++ OOP in C programmiert und mir dann ein Buch über C++ gekauft. Dort las ich dann, dass es für meinen C-Style in C++ passende Schlüsselwörter gibt.
Ich würde gerne wissen wie man in C (Ansi C) wirklich OOP betreiben kann.
Ja, man kann quasi einen this-Zeiger emulieren; Aber was ist mit Zugriffsmodifikatoren (public/protected/private) und alles was über das einfache Klassenkonzept hinausgeht?Entscheide Dich, möchtest Du Zugriffbeschränkungen in C nachbilden oder OOP.
Der this-Zeiger ist vollkommen uninteressant für OOP, er ist nur ein Funktions-Parameter, der vor die Funktion gerutscht ist. Interessant ist bei OOP ausschließlich das Schlüsselwort 'virtual'.
"Protected" kann man in C nicht nachbilden. Eine große Errungenschaft der Sprache C++, die man als Anfänger ungefähr genauso dringend benötigt wie 'virtual'.
asc schrieb:
Xin schrieb:
Was das Umstellen angeht: C ist in C++ enthalten. Konzepte, die man in C gelernt hat, werden in C++ nicht falsch, nur weil C++ alternative Konzepte anbietet.
C++ ist nicht C (Und ja, etwas was im C99 Standard ist kann im C++98 Standard falsch sein), auch wenn es darauf aufbaut.
Okay... hier kommen Details unterschiedlicher Standards ins Spiel...
asc schrieb:
Und ja, man kann auch weitgehend C unter C++ schreiben. Aber C++ ist weit mehr (Multiparadigmensprache).
Ich würde jeden Heute erst zu C++ raten wenn er C++ entwickeln will. Die Denkmuster sind anders. Zudem kann man dann noch immer sich Richtung C umschauen - doch in der Art der Entwicklung unterscheiden sich die Sprachen.
Zumal C++ weit mehr als nur OOP+C ist den es beinhaltet u.a.:
- Prozedurale Elemente (von C geerbt)
- Objektorientierte Elemente
- STL (Templatebasierende Programmierung)
- Templatemetaprogrammierung...und nun kommt die STL und Templates dazu.
Wir erinnern uns an das zu lösende Problem: Jemand möchte in die Programmierung einsteigen. Dazu braucht man auf jeden Fall Templates und die STL und muss die einzelnen Standards erstmal auswendig lernen.
Alternativ könnte er erstmal einfach lernen, welche Operatoren es gibt, wie man if, while und rekusive Funktionen verwendet und wie man überhaupt eine Funktion schreibt, bevor man sie Methode nennt.
-
otze schrieb:
asc schrieb:
Zumal C++ weit mehr als nur OOP+C ist den es beinhaltet u.a.:
[...]und das (meiner meinung nach wichtigste):elemente der funktionalen programmierung
Hier kommt echt keiner auf die Idee, dass Anfänger erstmal grundlegende Dinge wie "if" lernen sollten, oder?
Gibt's vielleicht mal jemanden neben mir, der schonmal unterrichtet hat, der dazu mal was sagen würde?
Mir scheint, dass hier jeder mit "Einstieg" ein Informatik-Studium gleichsetzt...otze schrieb:
Das Problem beim Umstieg von C nach C++ ist, dass viele das gefühl kriegen: C++ ist C mit Klassen, und das ist falsch.
C++ hat seinen Namen nicht von Stroustrup, der nannte es zunächst "C mit Klassen". Was sich der blöde Stroustrup wohl dabei gedacht hat?! Wie gut, dass wir es heute besser wissen.
Hier kann offenbar jeder C++ und weiß, dass man in C nur Scheiße programmieren kann. Aber anscheinend kann niemand soviel C, um das beurteilen zu können.
Man programmiert OOP anders als Prozedural.
Und das gilt für C und C++ gleichermaßen. C++ vereinfacht OOP deutlich und da ist der Unterschied.
-
...
Xin schrieb:
Als Pilot sollte ich erst den A380 fliegen und dann verstehe ich auch, wie ein Sportflugzeug funktioniert.
Ich fahre zuerst die Regatta und dann verstehe ich, wie man auf'm Baggersee eine Nußschale bewegt.
Ich mache erst den Führerschein für Schwertransporter, dann verstehe ich auch so, wie man einen PKW fährt.Ich bin Sporttaucher. Als Anfänger sollte man erstmal Bergungstauchgänge in 40m tief gelegenen Höhlen machen. Dann versteht man auch, wie man in 5 Metern Tiefe taucht...
Ich sag nur: Äpfel und Birnen ...
Xin schrieb:
Hier kommt echt keiner auf die Idee, dass Anfänger erstmal grundlegende Dinge wie "if" lernen sollten, oder?
Naja... Irgendwas aus der Luft gegriffen. Hat hier irgendjemand etwas dergleichen behaupten?
Schonmal dran gedacht das "if etc." auch C++ ist und nicht nur C.
-
Xin schrieb:
asc schrieb:
Wenn ich ein Haus bauen müsste würde mich der Prozess wie die Ziegel nun hergestellt werden auch nicht im ersten Moment interessieren...
Nicht alles, was hinkt ist ein Vergleich. Ein A380-Pilot muss das Flugzeug auch nicht herstellen, aber trotzdem kleinere Flugzeuge fliegen können...
Wenn mein Vergleich hinkt, ist deiner auch nicht besser.
Les dir bitte durch aus welchen Sprachkonstrukten C++ besteht. Ich muss nicht unbedingt einen Anfänger noch den Aufwand raten vorher ein C Buch zuzulegen, um dann Konstrukte die unter C sinnvoll, oder C++ aber ersetzt wurden (vergleiche mal bitte alleine die 2 Standardbibliotheken) zu lernen.
Xin schrieb:
Als Häusle-Bauer wirst Du erst kleine Häuser bauen, bevor Du die Petronas-Towers nachbaust.
Und wo wiederspricht das wenn er gleich C++ lernt? C++ unterstützt auch das, dazu muss er weder die typische Herangehensweise von C noch deren Bibliotheken lernen.
Xin schrieb:
Mach Dir nichts draus, ein Versuch war's wert. ;-D
Stimmt, netter Versuch deinerseits.
Xin schrieb:
Entscheide Dich, möchtest Du Zugriffbeschränkungen in C nachbilden oder OOP.
Entweder hast du keine Ahnung von Objektorientierung, oder dir ist bekannt das Datenkapselung, und damit verbundene Zugriffseinschränkungen ebenso zu OOP dazugehören ("virtual" ist nur ein winziger Teil von OOP). Und z.B. "protected" hat sehr viel Sinn (Weiterreichen von Sachen die nur in der Vererbungshierachie zugreifbar sein dürfen; Sonst müsste man es public machen und dann kann die Schnittstelle wieder gänzlich falsch verwendet werden). C++ erlaubt eine sauberere Programmierung, da du mehr Mittel und Wege hast die falsche Anwendung von Code einzuschränken. Zudem möchte ich die bessere Typprüfung auch nicht missen.
Xin schrieb:
...und nun kommt die STL und Templates dazu.
Wir erinnern uns an das zu lösende Problem: Jemand möchte in die Programmierung einsteigen. Dazu braucht man auf jeden Fall Templates und die STL und muss die einzelnen Standards erstmal auswendig lernen.
Die STL gehört ebenso dazu, wie unter C deren Standardbibliotheken. Wenn du die STL ausklammern willst (wozu auch iostreams etc. zählt), verlange ich von dir das du unter C ohne die Standardbibliotheken (printf&co...) auskommst. Und der Stil der in den C-Bibliotheken verwendet ist mag in Teilen effektiver sein (was übrigens dank statischer Typprüfung und Templates unter C++ nicht unbedingt immer der Fall ist).
Und auch Templates in einfachen Formen können durchaus schon früh Sinn machen, hier geht es weder um Templatemetaprogrammierung noch Template-Templateparameter etc.
Xin schrieb:
Alternativ könnte er erstmal einfach lernen, welche Operatoren es gibt, wie man if, while und rekusive Funktionen verwendet und wie man überhaupt eine Funktion schreibt, bevor man sie Methode nennt.
Dagegen sprechen die wenigsten C++ Bücher etwas. Aber sie verwenden (wenn sie den sinnvoll geschrieben sind) z.B. nicht die C-Bibliotheken. Du möchtest als Anfänger ja nicht unbedingt zweimal lernen.
Und if, while... ist ebenso C++
Zudem: B.S. hat tatsächlich C++ anfangs C mit Klassen genannt. ABER ziehe dann bitte auch seine aktuellen Standpunkte zur Sprache hinzu und zitiere nicht aus der C++ Entstehungsgeschichte. Du sprichst doch von Evolution, also berücksichtige sie auch.
cu André
-
asc schrieb:
Xin schrieb:
Entscheide Dich, möchtest Du Zugriffbeschränkungen in C nachbilden oder OOP.
Entweder hast du keine Ahnung von Objektorientierung, oder dir ist bekannt das Datenkapselung, und damit verbundene Zugriffseinschränkungen ebenso zu OOP dazugehören ("virtual" ist nur ein winziger Teil von OOP).
virtual ist nicht "nur ein winziger Teil von OOP", virtual ist OOP.
Weder Datenkapselung noch Klassen sind für OOP nicht erforderlich. Schau Dir mal die Implementierung von "virtual" und überlege Dir, warum OOP nicht "datengekapselte-Programming" oder "klassenbasierte Programming" oder "Datenvererbende Programming" heißt.
Soll ich's kurz machen? Es ist uninteressant, und außer "virtual" wirst Du in C++ nix finden, was mit OOP zu tun hätte.Wer sich jetzt berufen fühlt, groß aufzuschreien - und das werden viele sein - sollte vielleicht nicht nur "Fachliteratur" wie den Informatik-Duden und Wikipedia-Artikel lesen, sondern sich mal tiefergehend damit beschäftigen. "Die C++Programmiersprache" ist das Buch für die Frage "Wie?", "Design und Entwicklung von C++" ist das Buch, dass das "Warum?" beschreibt. Welches von beiden hast Du gelesen, schließlich hast Du ja schnell rausgefunden, dass ich keine Ahnung habe.
Wenn es also darum geht, das allgemeine Geblubber zu dem Thema wiederzukäuen (das man häufig auch an Hochschulen hört), so stimme ich Dir zu: Ich habe keine Ahnung von Objektorientierung.
asc schrieb:
Xin schrieb:
Wir erinnern uns an das zu lösende Problem: Jemand möchte in die Programmierung einsteigen. Dazu braucht man auf jeden Fall Templates und die STL und muss die einzelnen Standards erstmal auswendig lernen.
Die STL gehört ebenso dazu, wie unter C deren Standardbibliotheken. Wenn du die STL ausklammern willst (wozu auch iostreams etc. zählt), verlange ich von dir das du unter C ohne die Standardbibliotheken (printf&co...) auskommst.
Von mir kannst Du verlangen was Du willst. Mir würde es schon reichen, wenn Du begreifst, dass jemand in die Programmierung >> einsteigen << will...
EDIT: Das bedeutet - ich schreibe es extra nochmals hin - dass es nicht darum geht, die tollste Sprache zu finden, sondern einen Kompromiss zwischen Erlernbarkeit und Nutzen für die Zukunft zu finden. Es ist also nicht erforderlich hier aufzuzählen, dass C++ so toll ist - ich kenne die Sprache schon - sondern eine Lösung zu finden, die dem Fragenden hilft. Ein Schwanzvergleich zwischen C und C++ hilft ihm nicht. Eine übersichtlichere Teilmenge von C++ zu lernen hilft ihm vermutlich eher, als von den vielen Möglichkeiten von C++ erschlagen zu werden.
asc schrieb:
Zudem: B.S. hat tatsächlich C++ anfangs C mit Klassen genannt. ABER ziehe dann bitte auch seine aktuellen Standpunkte zur Sprache hinzu und zitiere nicht aus der C++ Entstehungsgeschichte. Du sprichst doch von Evolution, also berücksichtige sie auch.
...zu verstehen, dass ich es nicht bin, wäre aber auch ein Anfang.
Du möchtest, dass die Evolution berücksichtigt wirst? Das ist ja genau das, was ich auch möchte und gegen dass Du Dich wehrst.
Damit sind wir uns ja eigentlich einig.EDIT: D.h. ich habe keine Lust mehr. Du hast Deine Meinung gesagt, ich meine, der Fragesteller wird vermutlich schon PureBasic lernen, weil er sich denkt, dass C oder C++ schon nix sein kann, wenn nichtmals die (aus seiner Sicht) Profis wissen, was sie da tun.
-
Xin schrieb:
...und außer "virtual" wirst Du in C++ nix finden, was mit OOP zu tun hätte.
klassen. irgendwo müssen die objekte ja herkommen...

-
Xin schrieb:
Soll ich's kurz machen? Es ist uninteressant, und außer "virtual" wirst Du in C++ nix finden, was mit OOP zu tun hätte.
...
Wer sich jetzt berufen fühlt, groß aufzuschreien - und das werden viele sein - sollte vielleicht nicht nur "Fachliteratur" wie den Informatik-Duden und Wikipedia-Artikel lesen, sondern sich mal tiefergehend damit beschäftigen...Ich glaube ich brauche mit dir wirklich nicht zu diskutieren, es ist ebenso sinnlos wie einigen zu Erlären das die Verwendung einer Klasse nicht automatisch OOP ist.
Und zur "tiefgreifenden Beschäftigung" mit der Materie:
Ich mag vermutlich nicht ganz so alt sein wie du es bist (ich bin nur 30), und mich auch noch nicht solange mit Programmierung und Softwareentwicklung beschäftigen (nur etwa 17 Jahre bzw. nur etwa 11 Jahre seit ich Beruflich damit zu tun habe), und ich habe auch kein abgeschlossenes Studium wo ich anderen sagen kann: Ich weiß die Ultimative Lösung.Ich weiß das ich nicht allwissend bin und ich lerne stetig hinzu (ebenso wie meine Literatur stetig anwächst, auch wenn du recht hast: letztgenanntes Buch habe ich wirklich nicht) und ich merke noch heute jede Woche das es immer noch Dinge gibt die es zu lernen gibt. Aber ich betrachte nicht alleine C++ sondern auch Bücher die sich um Softwareentwurf (verschiedene Paradigmen), und im Speziellen um Objektorientierung und UML drehen [Und ja, auch ich habe mit der prozeduralen Programmierung angefangen].
Ich kenne auch die Entwicklung von C++ und auch das es sehr klein angefangen hat (grade was OOP angeht) und noch immer in der Weiterentwicklung ist.
Aber die Objektorientierung auf virtuel zu begrenzen, ja, da nehme ich mir heraus zu sagen das du keine Ahnung von OOP hast.
cu André
-
pale dog schrieb:
Xin schrieb:
...und außer "virtual" wirst Du in C++ nix finden, was mit OOP zu tun hätte.
klassen. irgendwo müssen die objekte ja herkommen...

Nopes, sorry, better luck next time. ^^
Structs oder Arrays reichen vollkommen.
-
Xin schrieb:
pale dog schrieb:
Xin schrieb:
...und außer "virtual" wirst Du in C++ nix finden, was mit OOP zu tun hätte.
klassen. irgendwo müssen die objekte ja herkommen...

Structs oder Arrays reichen vollkommen.
siehste, dann hat c++ schon 3 OOP features

-
Weis ja nicht, ob das diskutieren mit Xin soviel sinn hat.
Ja, es ist richtig dass man zuerst if lernen muss, aber dafür brauch man beileibe kein C buch für. Aber bevor man sich mit den CStrings, printf und dynamischen arrays rumschlägt, kann man gleich std::string, std::vector und die iostreams verwenden. Und wenn man früh lernt, dass man probleme mit den stl algorithmen lösen kann, dann ist man auch ein großes stück weiter und lernt gleichzeitig ein paar wichtige Sachen über die Art, wie man heutzutage C++ programmiert.
Btw: 2 der 3 oben genannten Klassen benutzen nichtmal virtual in irgendeiner Form. Da dies aber scheinbar keine OOP nach deiner definition ist, aber ein unbestritten wichtiger bestandteil von C++, wankt deine Theorie C++ = C mit Klassen mal ganz stark. QED. Übrigens könnte man das auch meinen, weil C++ eben nicht C mit Klassen heisst. Und wenn man sich anschaut, was in den nächsten Standard alles reingenommen wird weil es nötig erscheint, und das alles keine OOP features sind, kommt man auch ins Grübeln, und Stroustrup macht da sogar ordentlich mit

und zuguter letzt: OOP!= vererbung. Es kommt einzig und allein darauf an, dass man daten und methoden die zusammengehören zusammenschriebt. Die C filestreams sind zb gute oop, nur dass es dort das class schlüsselwort nicht gibt.