C++ Standard und C



  • Man sagt ja, C++ unterstützt C als Teilmenge vollständig. Dazu habe ich ein paar Fragen, auf die ich im Stroustrup keine Antworten gefunden habe.

    Ich würde ganz gerne 100%iges standardkonformes C++ schreiben, dabei aber aus Lerngründen/Verständnisgründen ersteinmal auf die STL verzichten.

    Ist es gültiges, vor allem standardkonformes C++, wenn ich in meinem C++ Code mit den C-Funktionen wie strcpy, strcmp, memset, memcpy, etc. arbeite? Gibt es Alternativen zu diesen Funktionen, oder ist es üblich diese C-Funktionen in C++ zu verwenden?

    🙂



  • Ja, es ist gültiges C++, allerdings solltest du die C++-Version der alten C-Header verwenden (also "#include <cstring>" anstelle von "#include <string.h>")



  • Gültig im Sinne, dass es dein C++-Compiler fressen wird und das Programm funktionieren wird, ist es. Ob es schöner C++-Stil ist will ich bezweifeln.



  • Standard C++ schrieb:

    Man sagt ja, C++ unterstützt C als Teilmenge vollständig. Dazu habe ich ein paar Fragen, auf die ich im Stroustrup keine Antworten gefunden habe.

    Ich würde ganz gerne 100%iges standardkonformes C++ schreiben, dabei aber aus Lerngründen/Verständnisgründen ersteinmal auf die STL verzichten.

    Ist es gültiges, vor allem standardkonformes C++, wenn ich in meinem C++ Code mit den C-Funktionen wie strcpy, strcmp, memset, memcpy, etc. arbeite? Gibt es Alternativen zu diesen Funktionen, oder ist es üblich diese C-Funktionen in C++ zu verwenden?

    Naja, muss es ein vollständeiger Verzicht sein? Zumindest die String-Klasse könntest du doch verwenden, da die str...-Funktionen doch sehr unbequem sind. Und memset und memcpy wirst du eh nur sehr selten einsetzen können, da das ganze spätestens bei polymorphen Sachen nicht mehr funktionieren wird.



  • Naja, du willst ja C++ lernen. Deshalb willst du auf die C++ Stdlib verzichten? Irgendwie paradox?! Nicht wahr? 😃

    Du meinst wohl eher, du willst die Grundlagen der Programmierung lernen? Aber dazu muß du wohl eher Assembler lernen. Im ernst, strcpy usw. sind einfach nur C-Funktionen, glaube nicht das man dadurch besser in C++ rein kommt. Verdirbste dir deinen C++ Stil, weil du später immer wieder darauf zurück greifen wirst, anstatt auf die sauberen C++ Libraries.

    Ich z.B. kann keine C-Funktionen. Frag mich mal, ob ich so ebend mal mit strcpy usw. umgehen könnte. Ich müsste erstmal nachschlagen, weil ich die nur einmal bisher der Neugierde wegen ausprobiert habe. Ansonst mach ich alles mit der C++ StdLib.


Anmelden zum Antworten