Was sollte ein professioneller C++ Entwickler kennen und können?
-
zwangs-OOpisierung , Wo ?
-
nach schlag schrieb:
zwangs-OOpisierung , Wo ?
Na überall. Lieber eine Klasse bestehend aus einer (von der Klasse unabhängigen) methode, als einfach eine funktion zu schreiben. Letzteres wäre ja C und C ist ja laut C++-Propaganda per Definition Gefrickel pur.
-
Warum sollte man das machen ?
C++ kann muß aber nicht OOP .
C hinngegen kann kein OOp
-
OOP ist kein Sprachfeature...
-
fghfghffssss schrieb:
Na überall. Lieber eine Klasse bestehend aus einer (von der Klasse unabhängigen) methode, als einfach eine funktion zu schreiben. Letzteres wäre ja C und C ist ja laut C++-Propaganda per Definition Gefrickel pur.
Schwachsinn, C++ ist eine Multiparadigmensprache und OO ist nur ein Sprachkonzept unter vielen in C++. Das ändert aber nichts daran, das man in C++ dennoch anders als in C programmiert (in der Regel auch weniger Zeigerlastig).
Meine C++ Programme sind zwar weitgehend OO, aber nicht ausschließlich (Manchmal machen Funktionen mehr Sinn).
-
dot schrieb:
OOP ist kein Sprachfeature...
Wird aber durch Sprachbestandteile besser oder schlechter unterstützt.
-
Hmmmm schrieb:
C hinngegen kann kein OOp
das stimmt nicht, das geht sehr wohl. FILE ist das beste Bsp dafür, oder GTK+, da hast du sogar Klassenvererbung.
-
Das ist eine Implementierung von GTK+ welche aber nicht zum Sprachumfang von C gehört.
C ist eine Prozedurale Sprache.
OOP ist auch weit mehr als Klassen und Klassenvererbung.Was nicht bedeutet das C eine schlechtere Sprache als C++ ist, sie hat in einigen Bereichen ihre Stärken was sie für bestimmte Problemlösungen zur besten Wahl werden läßt, ebenso C++ in seinem Bereich.
Manchmal erinnern mich in dem Forum hier die "Diskusionen" schon ein wenig an die Mantafraktion, meine Sprache hat mehr PS ^^.
Wat soll dat eigentich bringen ?
Ausser vieleicht das Buchhandlungen gerade feststellen das C und C++ gar nicht mehr verwendet wird, MFC seit Jahren schon abgelöst ist (O Ton des Verkäufers) und icke mir mein Buch beim Versand bestellen kann, deswegen nur noch Restbestände, in 3 Buchhandlungen .
-
^^ schrieb:
Ausser vieleicht das Buchhandlungen gerade feststellen das C und C++ gar nicht mehr verwendet wird,...
Okay, C und C++ kommen zusammen nur etwa auf die Buchverkaufszahlen von Java oder C#, das heißt aber nicht, das es nicht mehr verwendet wird (Zumal man auch bedenken muss das sich sowohl in C, wie auch in C++, seltener etwas Entscheidendes ändert, als beispielsweise in Java oder C#, und auch schon ein deutlich größerer Buchbestand schon Regale diverser Firmen und Personen füllen).
Das heißt aber nicht, das es nicht mehr verwendet wird (ich kenne noch sehr viele Firmen im C++ Umfeld, weniger im C-Umfeld - aber ich bin auch in der Anwendungsentwicklung und nicht im Umfeld von Treibern und Embedded Systems tätig (wo C wiederum einen höheren Stellenwert geniest).
Die Aussage ist daher Schwachsinn (und auch gulp & Co sprechen eine andere Sprache, selbst wenn der Anteil etwas zurückgegangen ist).
^^ schrieb:
MFC seit Jahren schon abgelöst ist (O Ton des Verkäufers)...
Von den Büchern her stimmt das auch. Wenn man zum Thema MFC Bücher sucht, muss man auf sehr alte Bestände zurück greifen, das gilt aber auch für einige andere Frameworks. Das hat aber nichts damit zu tun, das MFC nicht mehr eingesetzt wird. Die MFC hat noch immer einen sehr hohen Verbreitungsgrad im C++ Umfeld.
Leider werden auch nicht die alten Bücher mehr nachgedruckt, was es einen Einsteiger in MFC um so schwerer macht, oder neue (und sei es mit wenigen Aktualisierungen) heraus gebracht.
-
C++, Java, C# objektorientiert? Quatsch! Nur Eiffel ist objektorientiert - weil Bertrand Meyer das so definiert hat.
Man kann natürlich auch Alan Kay die größere Definitionskompetenz zum Begriff 'Objektorientierung' zugestehen und folgende Zitate bemühen:
OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I'm not aware of them.
Actually I made up the term "object-oriented", and I can tell you I did not have C++ in mind.
Zum ursprünglichen Posting möchte ich anmerken: es wurde gefragt, was ein professioneller Programmierer bei C++ können, kennen und wissen sollte. Unter "professionell" verstehe ich, dass da jemand seine Brötchen mit verdienen will. Das kann man heute sicher auch genausogut (wenn nicht besser) mit Java oder C#, aber all die Fürsprecher von esotherischen/akademischen Sprachen wie Haskell oder PTL Racket, etc. sei bemerkt, dass man bei Gulp oder Monster sehr, sehr wenig Stellenangebote findet, die Kenntnisse in diesen Sprachen fordern.
Uns hat man im Grundstudium auch Übungsaufgaben in Oberon-2, Standard ML, Eiffel, Prolog und irgendeinem LISP-Dialekt gestellt. Im Beruf habe ich die noch nirgends angetroffen. C, C++, Java, VBA, Perl, Python aber schon... und sogar (Trarar!): Assembler