C/C++ - Muss ein C++ programmierer C können? :D
-
asc schrieb:
Okay, dann kann ich auch nach über 10 Jahren kein C++. Den mit C-Code habe ich meine Probleme (oder bislang einfach nur die falschen C-Projekte gesehen).
Tja, dann bist du wohl eine Ausnahme.
-
Lassen wir diese Diskussion sein. Die Meinungen und Ansichten bleiben immer die gleichen, sie werden nur wiederholt. Wichtig ist doch nur, dass man einige Grundschritte der Programmierung beherrschst. C bietet nur diese Grundschritte, C++ bietet mehr.
Zurück zur Analogie Mountainbike/Velo: Strampeln muss man mit beiden, um fahren zu können. Kette, Klingel, Bremse usw. bleiben auch gleich.
-
berniebutt schrieb:
Lassen wir diese Diskussion sein.
Dann führ sie selbst auch nicht vor.
berniebutt schrieb:
Wichtig ist doch nur, dass man einige Grundschritte der Programmierung beherrschst. C bietet nur diese Grundschritte, C++ bietet mehr.
C bietet mehr als diese Grundschritte, da einiges was in C üblich ist, in C++ unüblich ist. C bietet zwar das Fahrradgestell, die C-Klingel wird aber üblicherweise durch die C++ Klingel ausgetauscht usw.
Die Grundmenge an C die üblicherweise unter C++ verwendet wird ist kleiner als C. Und die Teile die unter C++ unüblich sind, muss ein Programmierer der nur C++ gelernt hat auch nicht kennen (Daher ist ein C-Code nicht unbedingt für ein C++ Programmierer zwangsweise komplett lesbar).
-
Und die Teile die unter C++ unüblich sind
Fuer mich ist nichts in C++ unueblich. Es gibt nur guenstige und unguenstige Loesungen.
-
asc schrieb:
Den mit C-Code habe ich meine Probleme (oder bislang einfach nur die falschen C-Projekte gesehen).
Welche Schwierigkeiten hast Du denn mit C? Pointer, C-Strings oder was?
-
Und die Teile die unter C++ unüblich sind, muss ein Programmierer der nur C++ gelernt hat auch nicht kennen
Wenn mir ein programmierer nur C++ programme vorsetzt, wo er keinen Speicher manipuliert, keine C-Schnittstelle bedient, nur immer schoen die standardlibraries verwendet und paar geangige framworks fuer Grafik und DB zgriff vielleicht, wuerd ich Ihn schon fragen, warum er c++ entwickelt, und ned VB oder Java oder was anderes ?
Warum sollte jemand c++ Lernen wollen, wenn er nicht die Möglichkeiten nutzen will die Ihm die Ursprünge von C bieten ? Das können doch andere Sprachen besser oder ?Ciao ...
-
C++Fan 2009 schrieb:
Welche Schwierigkeiten hast Du denn mit C?
1. Große Teile der C-Bibliothek (Ich glaube <cmath> ist bei mir die einzige Ausnahme, die ich wirklich aus C verwende).
2. Schwierig zu lesen: Alle Mehrfachzeiger
3. void* wo man erst einmal recherchieren muss wofür dies eingesetzt wird
...Ist ja nicht so das man unter C keine Zeiger etc. verwendet, aber alleine der Programmstil durch unterschiedliche Bibliotheksansätze unterscheidet sich merklich (Auch der Umgang mit Daten etc.).
-
Ihr solltet unterscheiden lernen, was kann die Compilersprache und was machen die dazugehörigen Standard-Bibliotheken. Da geht vieles hier lustig durcheinander.
Natürlich braucht ein C++ Programmierer keinen vollständigen Überblick über ANSI-C, doch grundlegende Dinge von C sind unverzichtbar, da einfach übernommen. Was schadet es den C++ Fragesteller, wenn er sich auch mit C auseinandersetzt? Er kann nur hinzu lernen und sein nächstes Detailproblem ohne weitere Anfrage hier im Forum selbst lösen.
Klei mi anne feut - bossza meg - ich klinke mich aus dieser Diskussion jetzt aus!
-
berniebutt schrieb:
Ihr solltet unterscheiden lernen, was kann die Compilersprache und was machen die dazugehörigen Standard-Bibliotheken.
Doch, die gehört dazu wenn man die Frage stellt "Muss ein C++ programmierer C können?" den C++ umfasst selbst die Grundlagen die du hier bei C ansprichst. Und du wirst diese auch in einem reinen C++ Buch finden.
Wenn ich aber C lerne, lerne ich nicht nur das, sondern auch Befehle wie printf & Co die nunmal die Standard-Bibliotheken betrifft UND teil der Sprache sind (Die Standardbibliotheken gehören zum jeweiligen Sprachstandard. Und C++ hat zwar die C-Header aber bezeichnet diese auch als C-Kompatibilitätsheader).
-
RHBaum schrieb:
Wenn mir ein programmierer nur C++ programme vorsetzt, wo er keinen Speicher manipuliert, keine C-Schnittstelle bedient, nur immer schoen die standardlibraries verwendet und paar geangige framworks fuer Grafik und DB zgriff vielleicht, wuerd ich Ihn schon fragen, warum er c++ entwickelt, und ned VB oder Java oder was anderes ?
Mindestens mit Speicherverwaltung werden sich wohl die meisten Programmierer beschäftigen. Wenn auch nicht primär auf dem Level von C - warum sollte man auch? Man darf das hohe Abstraktionslevel nutzen. Zusätzlich hat man in C++ aber auch die Möglichkeit, nahe an der Maschine zu programmieren.
RHBaum schrieb:
Warum sollte jemand c++ Lernen wollen, wenn er nicht die Möglichkeiten nutzen will die Ihm die Ursprünge von C bieten ? Das können doch andere Sprachen besser oder ?
Das ist genau diese "C++ == C mit Klassen"-Sichtweise. Wieso sollte man C++ lernen, um C zu nutzen?
C++ bietet viel mehr, darunter auch Dinge, die andere Sprache nicht können. Genannt seien hier nur mal Templates.
berniebutt schrieb:
Was schadet es den C++ Fragesteller, wenn er sich auch mit C auseinandersetzt?
Du scheinst es immer noch nicht verstanden zu haben.
Es ging um die Frage "Muss ein C++ programmierer C können?" , welche an sich schon nicht ganz klar ist (inwiefern muss man überhaupt eine Programmiersprache können, wer sollte dies festlegen?). Aber falls es darum geht, dass man C als separate Sprache - nicht als Bestandteil von C++ - mit den entsprechend anderen Paradigmen und Herangehensweisen an Probleme können muss (d.h. ohne sie nicht vernünftig programmieren kann), um in C++ zu programmieren, lautet die Antwort wohl nein.