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.


Anmelden zum Antworten