"C with classes"
-
Hiho!
Oft wird gesagt, C Programmierer, die auf C++ umsteigen, wuerden (anfangs) oft nur "C with classes" schreiben. Wie genau schaut C with classes aus und was daran ist schlechter C++ Stil?
-
Blue-Tiger schrieb:
Hiho!
Oft wird gesagt, C Programmierer, die auf C++ umsteigen, wuerden (anfangs) oft nur "C with classes" schreiben. Wie genau schaut C with classes aus und was daran ist schlechter C++ Stil?Ich glaube, danach zu suchen ist zwecklos. Ist wie mit dem Spaghetti-Code von damals. Ein Beleidigungswort, das nur von Möchtegern-Programmierern benutzt wird (auch in leitenden Positionen). Man belegt damit Neueinsteiger, um sich selbt zu erhöhen, und verwendet es als Totschlagargument in religiösen Diskussionen. Oder einfach, um irgendwas Beliebiges zu begründen.
Ein konstruiertes Beispiel wäre, einen bunten Strauß Klassen zu basteln und eine Funktion mit switch(echterTyp) zu dispatchen, statt virtual zu nehmen.
-
C with classes erkennt man z.B. dran, dass nicht mal von einer einzigen Klasse der <<-Operator überladen wurde.
-
Ölfisch schrieb:
C with classes erkennt man z.B. dran, dass nicht mal von einer einzigen Klasse der <<-Operator überladen wurde.
Und? Das ist kein Argument...
-
Spaghetticode ist fremder Code, für den man zu doof ist um ihn zu verstehen. Und alles was man nicht versteht, ist schlecht. Nerdmentalität um das RL-Defizit auf dem Fachgebiet "Informatik" aufzupeppen.
-
C++ hat keinen Stil.
77.8% der selbst ernannten C++ Programmierer halten das "class" keyword für notwendig um keinen Frickelcode zu schreiben. OOP ist da nebensächlich.
-
Jippie, dieser Thread wird eine Trollparty.
Blue-Tiger schrieb:
Wie genau schaut C with classes aus und was daran ist schlechter C++ Stil?
Das ist mit Klassen und Templates aufgemotzter C-Code, der aber den ganzen Rest, der C++ von C unterscheidet, außer acht lässt. Zum Beispiel die Standardbibliothek, Exceptions und Konzepte wie RAII.
Pauschal als schlechten Stil würde ich das nicht bezeichnen, es könnte ja einleuchtende Gründe geben, warum man das so macht. Meistens ist es aber Ignoranz und Selbstbetrug.
-
Nukularfüsiker schrieb:
Pauschal als schlechten Stil würde ich das nicht bezeichnen, es könnte ja einleuchtende Gründe geben, warum man das so macht.
Vor allem gibt es umgekehrt oft wenig Gründe es anders zu machen, also die ganzen zusätzlichen C++-Konzepte zu verwenden. Man bekommt zwar eventuell kompakteren und typsichereren Code, der aber dafür inkompatibler, oft schwerer zu durchschauen und debuggen und manchmal auch langsamer ist. Man muss also abwägen was im konkreten Fall das Beste ist, was ja an sich kein Problem ist.
Das Problem sind fanatische C++-Esoteriker, die fest davon überzeugt sind, dass man _alle_ Features von C++ unbedingt nutzen müsste, einfach weil es sie gibt. Wer es nicht tut, ist nach deren Ansicht ein verkappter C-Programmierer, der gar nichts von C++ versteht, und der blasphemische Code wird dann abwertend als "C with classes" bezeichnet.
-
C with Classes scheint mir Objective-C zu sein
C++ ist C with guns.
-
Historisch gesehen ist "C with Classes" der Anfang von C++, der Begriff wurde so um 1980 herum von Stroustrupp benutzt als er eine erste Implementierung eines Klassenkonzepts in C entwickelte. C++ wurde es erst ab ca 1983 herum genannt.
Ansonsten kenne ich selber genug (negativ) Beispiele von ehemaligen C-Programmierern, die halt glauben das allein das Keyword "class" ihre Programme "Objektorientier" macht... Typisches Indiz: Man kann das "class" aus deren Code einfach wegnehmen und das Programm geht trotzdem... Ich mein sowas:
class Registry { static void DoSomething() { } static void DoSomethingElse() { } };
Traurigerweise sind das Realworld-Beispiele von meinen Vorgängern. Vor allem der eine war ganz stolz darauf das er das ganze Projekt in C++ "umgeschrieben" hat...