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



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



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


Anmelden zum Antworten