Wann C und wann C++ nehmen?



  • Ich versuche gerade beide Sprachen zu lernen und frage ich, wann ihr lieber C und wann ihr lieber C++ einsetzt?



  • Als C++'ler nutze ich dann C, wenn C++ auf der Plattform nicht verfügbar ist. Denn da ich in C++ in mehreren Paradigmen programmieren kann und insbesondere auch prozedural wie in C, gibt es für mich sonst keinen Grund, auf C auszuweichen.



  • Ich benutze C wenn ich viele -> schreiben will, die sehen so cool aus. ❤



  • In dem Fall lege ich in C++ einen referenzfreien Tag ein.



  • 8bit-dude schrieb:

    Als C++'ler nutze ich dann C, wenn C++ auf der Plattform nicht verfügbar ist.

    Da es auch C++ zu C-Compiler gibt (z.B. Clang) ist das kein Grund mehr, C zu verwenden.



  • 8bit-dude schrieb:

    Als C++'ler nutze ich dann C, wenn C++ auf der Plattform nicht verfügbar ist. Denn da ich in C++ in mehreren Paradigmen programmieren kann und insbesondere auch prozedural wie in C, gibt es für mich sonst keinen Grund, auf C auszuweichen.

    Hier muss alles was über ein "Hello World" hinausgeht mit Klassen programmiert werden. Prozedurales C++ wird hier überhaupt nicht gerne gesehen. Multi-Paradigma als unerwünscht, siehe auch diesen Thread hier: http://www.c-plusplus.net/forum/322048


  • Mod

    Also wenn man wirklich beides kann, dann hat man als C++-Kenner keinen Grund, jemals ernsthaft C zu nutzen, außer es ist wirklich kein C++ auf der Plattform verfügbar. Was ein extrem exotischer Sonderfall ist. Oder wenn der vorhandene Code schon in C ist und das so bleiben soll. Letzteres dürfte wohl der häufigste Grund sein.

    Problem ist wohl auch, dass viele Leute, die meinen, C++ zu können, es nicht können. Es ist einerseits eine extrem komplexe Sprache, die man sehr gut beherrschen muss, um ihre Vorteile zu genießen, andererseits gibt es massenhaft schlechtes Lehrmaterial, welches C++ als C mit Klassen darstellt. Was dann ziemlich schlechtes C++ ist, welches bloß schwer ist, ohne die Vorteile. Und das pflanzt sich dann fort, wenn diese Leute glauben, anderen Leuten C++ beibringen zu können.



  • Wie viele Kernel und Treiber kennt man denn die in C geschrieben wurden?
    Sehr bekannte Leute, unter anderem Linus Torvalds, halten anscheinend nicht so viel von C++. Ich denke schon das C (noch) seinen Zweck erfüllt.
    Wobei mir auch klar ist das man alten Code nicht einfach so umschreiben kann und man deshalb noch C-Projekte hat und nicht weil die in C besser wären, sondern weil das umschreiben zu viel Arbeit macht.

    Ich finde es gut wenn mit der Kompatibilität mal gebrochen wird wenn man dadurch die Chance hat was besser zu machen. In D scheint man es ja zu probieren.

    Aber ob und wann man von C loskommen wird oder will ist fraglich.



  • Thomsons schrieb:

    Wobei mir auch klar ist das man alten Code nicht einfach so umschreiben kann und man deshalb noch C-Projekte hat und nicht weil die in C besser wären, sondern weil das umschreiben zu viel Arbeit macht.

    Ich kenn zwar ABI nur als Schlagwort, aber das klappt bei C++ nicht so...

    Gibt noch paar andere Sachen, aber eig. ist es egal. Viele Projekte sind schon umgestiegen, besser ist dadurch keines geworden!



  • Weg mit C, C++ kann alles, was auch C kann, nur besser.



  • Kellerautomat schrieb:

    Weg mit C, C++ kann alles, was auch C kann, nur besser.

    Ohne einen Glaubenskrieg loszutreten, deine Aussage ist FALSCH! Ich werde es jetzt auch nicht vertiefen. Vllt. werde ich überrascht und es bringt doch mal einer DAS Argument 😉



  • Daran ist nix falsch, das ist Fakt. Nenne mir eine einzige Sache, die C kann, aber C++ nicht.
    Die C Standardlib ist totaler Rotz, hat nicht mal Container. RAII gibts keines, muss ich alles selbst machen. Wieso gibts ueberhaupt Leute, die mit sowas freiwillig programmieren? Muessen wohl ziemlich massochistisch veranlagt sein.



  • Kellerautomat schrieb:

    Nenne mir eine einzige Sache, die C kann, aber C++ nicht.

    Denk doch mal nach wenn du schon RAII, die STL und Exceptions verwendest... 🙄



  • Wenn du mir nicht mit sachlichen Argumenten kommst, sondern der Diskussion ausweichst mit irgendsoeinem blabla, bleibt mir nichts anderes uebrig, als anzunehmen, dass du nur ein Troll bist.



  • Kellerautomat schrieb:

    Wenn du mir nicht mit sachlichen Argumenten kommst, sondern der Diskussion ausweichst mit irgendsoeinem blabla, bleibt mir nichts anderes uebrig, als anzunehmen, dass du nur ein Troll bist.

    Ist mir gleich. Melde dich, wenn du die Funktion gefunden hast! 😉



  • Die Beweispflicht liegt nicht bei mir sondern bei dir. DU hast mir widersprochen, aber nicht begruendet.

    Und keine Ahnung, von was fuer einer komischen Funktion du redest, lebst wohl in deiner eigenen Welt.



  • junta schrieb:

    Kellerautomat schrieb:

    Wenn du mir nicht mit sachlichen Argumenten kommst, sondern der Diskussion ausweichst mit irgendsoeinem blabla, bleibt mir nichts anderes uebrig, als anzunehmen, dass du nur ein Troll bist.

    Ist mir gleich. Melde dich, wenn du die Funktion gefunden hast! 😉

    Wenn du auf VLAs hinauswillst, lach ich dich aus.



  • Nathan schrieb:

    Wenn du auf VLAs hinauswillst, lach ich dich aus.

    Wir wissen, dass du keine VLAs magst. Aber VLAs sind toll.



  • otze schrieb:

    Nathan schrieb:

    Wenn du auf VLAs hinauswillst, lach ich dich aus.

    Wir wissen, dass du keine VLAs magst.

    ?
    Kann es sein, dass du mich mit Kellerautomat verwechselst? 😉



  • VLAs sind nett, aber total broken in C. Runtime evaluated typedef/sizeof... baeh.


Anmelden zum Antworten