C/C++ - Muss ein C++ programmierer C können? :D



  • Kurze Antwort: Nein, muss er nicht.
    C und C++ sind andere Konzepte und die Syntax spielt dazu nicht einmal eine wirkliche Rolle.

    Lange Antwort:
    Such im Forum. Das gabs wirklich schon zum x-ten mal.



  • daybreak schrieb:

    Jetzt werden sich viele denken: "Was labert er schonwieder, C++ ist ja nur C mit Klassen."

    Eben nicht! Wohl die meisten in diesem Forum vertreten die Meinung, dass C++ grundsätzlich anders ist - nicht zu letzt, weil Paradigmen wie objektorientierte und generische Programmierung dazukommen.

    daybreak schrieb:

    Muss eigentlich jemand, der sich vorher nie mit C beschäftigt hat und jetzt C++ lernt auch C beherschen? Es wird ja meistens immer von C/C++ geredet.

    Was heisst müssen? Sofern das nicht etwa dein Arbeitgeber oder Professor von dir verlangt, ist es dir relativ freigestellt, welche Programmiersprache du lernen willst. In C++ geht auch vieles ohne C. Du musst dich also nicht zwangsläufig mit der C-Standardbibliothek auseinandersetzen, auch wenn es gewisse Dinge gibt, die interessant sein können.

    Aber mehr findest du wirklich in der Forensuche und bei Wikipedia, was die Verwendung angeht.


  • Administrator

    daybreak schrieb:

    Jetzt werden sich viele denken: "Was labert er schonwieder, C++ ist ja nur C mit Klassen."

    Verbrennt ihn! 😃
    Nein, C++ ist definitiv NICHT C mit Klassen. Es gibt aber verdammt viele Programmierer, welche nie vernünftig C++ gelernt haben und deshalb C mit Klassen programmieren. Aber eben, diese Programmierer haben nie vernünftiges C++ gelernt.

    daybreak schrieb:

    Muss eigentlich jemand, der sich vorher nie mit C beschäftigt hat und jetzt C++ lernt auch C beherschen? Es wird ja meistens immer von C/C++ geredet.

    Nein, man kann C++ völlig unabhängig von C lernen. Es gibt sogar eine grössere Fraktion in diesem Forum, welche der Meinung ist, dass man besser zuerst C++ lernen sollte und danach C. Die Meinungen gehen da aber ein wenig auseinander.

    Jedenfalls kannst du C++ völlig unabhängig von C erlernen!

    daybreak schrieb:

    Wird C eigentlich noch richtig aktiv benutzt? (zB Unix OS) oder wird langsam ganz auf C++ umgestiegen.

    Ja, C kommt sehr oft noch zum Einsatz. Treiber- und Kernelprogrammierung zum Beispiel. Ich würde jedenfalls ganz sicher nicht behaupten wollen, dass C++ C am verdrängen sei.

    Grüssli

    PS: Such mal hier im Forum, es gab auch schon ähnliche Threads.



  • daybreak schrieb:

    Ich habe mir jedoch einmal so die Syntax der C Programmierung angesehen, und musste feststellen das diese ja mal um 90% anders ist!

    Nein, es kam mit C++ nur jede Menge neuer Syntax hinzu.

    daybreak schrieb:

    Muss eigentlich jemand, der sich vorher nie mit C beschäftigt hat und jetzt C++ lernt auch C beherschen?

    IMHO: ja. Irgendwann wird jeder C++-Programmierer sich mal mit Low-Level-APIs und -Quelltext auseinandersetzen müssen (z.B. dem Windows-API); mangelhafte C-Kenntnisse sind da fatal.



  • audacia schrieb:

    ... mangelhafte C-Kenntnisse sind da fatal.

    Wunderbar formuliert ... 😃



  • Also, Treiber und Kernelprogramme kann man doch aber auch in C++ schreiben, zumindest laut Wikipedia 😃

    Low-Level-Programmierung, kann ich mir jetzt als Newbie auch nicht vorstellen das es ohne C so schlimm währe. Sagen wir mal so - Wenn man C++ beherrscht, wielange dauert es dann noch C zu lernen? Sollte ja (meiner meinung nach) in unter einer Woche gehen weil man doch nur die Syntax lernen muss.. Sinn und bedeutung kann man ja bereits.

    Und das mit "C mit Klassen" 😛 Das hab ich schon einige male gelesen deshalb dachte ich man schreibt es mal so ^^



  • Ich würde eher sagen, dass es umgekehrt ist. C und C++ haben eine sehr ähnliche Syntax und sollte ohne Probleme lesbar sein. Der Sinn und Zweck - wie du das nennst, ist sehr anderst. Vergleich mal ein C mit einem C++ Programm. (und ich meine jetzt nicht so Anfänger Zeugs, wie "hallo, welt", sodern ein richtiges). Du wirst merken, dass da offensichtlich eine ganz andere Art zu programmieren dahinter steckt.

    C mit Klassen war sozusagen der Ursprung von C++ ist auch durch Bjarne Stroustrup entstanden.
    http://de.wikipedia.org/wiki/C%2B%2B



  • Sollte ein Programmierer C koennen? Ja! Also trifft es auch auf einen C++ Programmierer zu. 🙂



  • daybreak schrieb:

    Sagen wir mal so - Wenn man C++ beherrscht, wielange dauert es dann noch C zu lernen? Sollte ja (meiner meinung nach) in unter einer Woche gehen weil man doch nur die Syntax lernen muss.. Sinn und bedeutung kann man ja bereits.

    Kannste vergessen, wirste schon sehen.



  • daybreak schrieb:

    Also, Treiber und Kernelprogramme kann man doch aber auch in C++ schreiben, zumindest laut Wikipedia

    Wenn Du nur das C aus C++ benutzt, geht das ohne weiteres.



  • drakon schrieb:

    Kurze Antwort: Nein, muss er nicht.
    C und C++ sind andere Konzepte und die Syntax spielt dazu nicht einmal eine wirkliche Rolle.

    Sehr erstaunliche Ansicht! C ist das Grundkonzept, das voll in C++ erhalten geblieben ist. Mit C++ hat man viele guten Möglichkeiten mehr, die Herkunft bleibt aber unverkennbar! Auch ein Mountainbike ist ein Fahrrad mit zwei Rädern, Pedalen, Lenker und Sitz. Die Frage muss der Fragesteller für sich alleine benatworten.


  • Administrator

    berniebutt schrieb:

    drakon schrieb:

    Kurze Antwort: Nein, muss er nicht.
    C und C++ sind andere Konzepte und die Syntax spielt dazu nicht einmal eine wirkliche Rolle.

    Sehr erstaunliche Ansicht! C ist das Grundkonzept, das voll in C++ erhalten geblieben ist. Mit C++ hat man viele guten Möglichkeiten mehr, die Herkunft bleibt aber unverkennbar! Auch ein Mountainbike ist ein Fahrrad mit zwei Rädern, Pedalen, Lenker und Sitz. Die Frage muss der Fragesteller für sich alleine benatworten.

    Klar hat C++ seine Wurzeln in C, dass ist absolut richtig. Allerdings programmiert man in C++ nicht wie man in C programmiert. Das Konzept ist anders, die Ideen werden anders umgesetzt, die Möglichkeiten sind anders, usw. usf.
    Wer in C++ wie in C programmiert, der hat C++ nicht verstanden. Der programmiert dann eben nur ein C mit Klassen.

    Zudem ging es um die Frage, ob man C lernen muss um C++ zu lernen. Und das ist definitiv nicht der Fall. Du musst nicht mit einem normalen Velo zuerst fahren lernen, um später mit einem Mountainbike fahren zu können. Du kannst auch direkt mit dem Mountainbike lernen.

    Grüssli



  • Nö, muss man nicht. Man muss ja auch nicht C können um Java zu lernen. Und das, trotz der unverkennbar vorhandenen Gemeinsamkeiten.



  • berniebutt schrieb:

    drakon schrieb:

    Kurze Antwort: Nein, muss er nicht.
    C und C++ sind andere Konzepte und die Syntax spielt dazu nicht einmal eine wirkliche Rolle.

    Sehr erstaunliche Ansicht! C ist das Grundkonzept, das voll in C++ erhalten geblieben ist. Mit C++ hat man viele guten Möglichkeiten mehr, die Herkunft bleibt aber unverkennbar!

    Dem widerspreche ich komplett. Was C++ mit C gemeinsam hat sind im wesentlichen Syntax und Sprachelemente, weniger das Konzept - zumindest von der Umsetzung her gesehen. Und selbst wenn der C++ Code an dem ich Arbeite nicht das Ideal ist (Die Codebasis hat schon einige Jährchen auf dem Buckel), sehe ich hier nichts was wirklich eine Herkunft von C sichtbar macht.

    Es sei den du siehst die Schlüsselwörter als solche schon als Grundkonzept an, dann kann man natürlich auch C++ in deiner Aussage durch Java, C# und einige andere Sprachen ersetzen.



  • asc schrieb:

    Dem widerspreche ich komplett. Was C++ mit C gemeinsam hat sind im wesentlichen Syntax und Sprachelemente, weniger das Konzept - zumindest von der Umsetzung her gesehen.

    Was meinst du mit dem Nachsatz?

    Natürlich ist das Konzept in Teilen dasselbe, man müsste sich schon ziemlich dummstellen, um das nicht zu sehen. C++ ist genauso wie C auf der Ebene einzelner Bytes im Speicher definiert, man KANN lediglich durch geeignete Abstraktionen sich auf ein Level aufschwingen, auf dem man das manchmal ignorieren kann. In Sprachen wie Java ist das überhaupt nicht der Fall.

    Mein Sempf zum Thema: Ein C++-Programmierer sollte C ohne Probleme lesen können. C schreiben zu können kommt nicht automatisch, zumindest kein gutes C, es sollte aber relativ leicht zu lernen sein.



  • Bashar schrieb:

    Ein C++-Programmierer sollte C ohne Probleme lesen können.

    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).



  • Bashar schrieb:

    Natürlich ist das Konzept in Teilen dasselbe, man müsste sich schon ziemlich dummstellen, um das nicht zu sehen.

    Na dann sag mal, welche Konzepte Gemeinsamkeiten sind... Oder ob man vll doch nach grundsätzlich verschiedenen Paradigmen programmiert...

    Bashar schrieb:

    C++ ist genauso wie C auf der Ebene einzelner Bytes im Speicher definiert

    ist kein Konzept - und allg. ist jede Sprache (bzw der Code den der Compiler generiert) eine Folge einzelner Bytes im Speicher .

    bb



  • unskilled schrieb:

    Oder ob man vll doch nach grundsätzlich verschiedenen Paradigmen programmiert...

    Und nach welchem Paradigma programmiert man mit c++? Falls jetzt "Objektorientierung" kommt, dann überleg mal ob das wirklich wahr ist?



  • Mitleid schrieb:

    Und nach welchem Paradigma programmiert man mit c++? Falls jetzt "Objektorientierung" kommt, dann überleg mal ob das wirklich wahr ist?

    Selbst wenn ich Prozedural unter C++ programmieren würde, sähe der Code bei mir anders aus als unter C (alleine schon dank Referenzen, der Verwendung der Standardbibliothek, ggf. Templates usw.)... Man kümmert sich seltener selbst um Speicherallokationen, tendiert zu Typsichereren Code...



  • 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.


Anmelden zum Antworten