const char* - Definition und Einsatz
-
@5cript sagte in const char* - Definition und Einsatz:
Und das war modern C++14. 1A Vorlesung
Programmieren lernt man nicht beim Professor.
Programmieren lernt man ausschließlich in der Praxis (gilt ausnahmsweise mal für C und C++).
char* ist C
std:string ist C++Durch das verkorkste Sprachdesign von C++ (auch C supporten zu wollen) hat sich leider - insbesondere bei Lehrern,Buchautoren,Tutorialschreiberlingen... - ein Wirrwarr der beiden Sprachkonzepte verbreitet, zeigt sich u.a. an der Vokabel C/C++.
Die Faulheit von Lehrern zeigt sich dann häufig in Aufgabenstellungen wie - programmieren sie irgendwas mit char* ohne die Standardbibliothek zu benutzen, und das wird dann auch noch als C++ (statt korrekt C) tituliert.
std:string (und Gesamt-C++) wurde geschaffen, um Programmierlaien den Einstieg in die Programmierung zu erleichtern und Fehlerquellen (Zeiger) zu vermeiden; das hindert diese C++ Laien aber nicht daran, sich als professionelle Programmierer zu bezeichnen und in kritischen Situationen dann doch wieder C einzusetzen, wobei es sich dann natürlich rächt, das Zeigerkonzept von C nicht verstanden zu haben.
bspw. wirst du im gesamten Linux-Kernel kein std:string vorfinden, sondern ausschließlich char*, was beweist, dass selbst für gigantische praxisrelevante Projekte C - in den richtigen Händen - vollkommen ausreicht.
-
@Wutz sagte in const char* - Definition und Einsatz:
bspw. wirst du im gesamten Linux-Kernel kein std:string vorfinden, sondern ausschließlich char*, was beweist, dass selbst für gigantische praxisrelevante Projekte C - in den richtigen Händen - vollkommen ausreicht.
Das kommt nunmal vor wenn man den Kernel in C schreibt
@Wutz sagte in const char* - Definition und Einsatz:
Programmieren lernt man nicht beim Professor.
Aber es wär schön nicht verkorkst zu werden.
@Wutz sagte in const char* - Definition und Einsatz:
zeigt sich u.a. an der Vokabel C/C++
Für mich leider ein Zeichen für C++ Inkompetenz, hab das auch schon in Stellenanzeigen gesehen.
Wird leider oft zusammengeschmissen. Zitat: "Ist doch fast das gleiche"@Wutz sagte in const char* - Definition und Einsatz:
Durch das verkorkste Sprachdesign von C++ (auch C supporten zu wollen) hat sich leider
Fluch und (historisch) segen. Du musst die Sprache ja erstmal schmackhaft machen. Weiß nicht ob C++ da wär wo es ist, ohne die beinahe kompatibilität.
-
@Wutz sagte in const char* - Definition und Einsatz:
Die Faulheit von Lehrern zeigt sich dann häufig in Aufgabenstellungen wie - programmieren sie irgendwas mit char* ohne die Standardbibliothek zu benutzen, und das wird dann auch noch als C++ (statt korrekt C) tituliert.
Das liegt eher daran, dass man LowLevel Programmierung am Beispiel von C++ zeigen will, um nicht auf C auszuweichen. Ja es geht, aber es ist wohl Konsens, dass das nicht der Weg ist wie man C++ programmieren sollte. Wenn man schon die Verwandtschaft von C und C++ ausnutzen wollte, wären hier reine C Programme besser.