Diskussion:C++-Programmierung: Variablen und Konstanten

Aus Wikibooks
Zur Navigation springen Zur Suche springen

Zwar haben vorallem Skriptsprachen keine Typunterscheidung, sie sind aber dafür auch langsamer. Es gibt keinen Zusammenhang zwischen den beiden Teilaussagen, insbesondere ist die Zweite keine Folge der Ersten. Ich werde das praezisieren, wenn niemand Einspruch erhebt. --matze 05:53, 15. Apr 2005 (UTC)

richtig, außerdem sollten beispielsprachen genannt werden, da es nicht nur skriptsprachen sind (oder?). gruß Szs 08:28, 16. Apr 2005 (UTC)
erledigt --matze 18:40, 17. Apr 2005 (UTC)

Datentypen-Teil aus C++-Programmierung:_Grundlagen übernommen[Bearbeiten]

Ich haben den Datentypen-Teil aus C++-Programmierung:_Grundlagen übernommen und zu C++-Programmierung:_Variablen_und_Konstanten#Typen gemischt, weil er bei den Grundlagen ein zu direkter Einstieg war und vom Thema doch besser zum Kapitel Variablen und Konstanten passt; vor allem, weil dort schon geklärt ist, was eine Variable überhaupt ist. --Stefan Kögl 20:11, 7. Aug 2005 (UTC)

cin,get,namespace?[Bearbeiten]

WIrklich sehr schön für Anfänger. Wofür ist das namespace. Was macht cin am Ende und warum fehlen die ganzen std for cout und endl.

Ich weiß es zwar, aber ein Anfänger würde sich doch hier ein wenig Hilfe erhoffen. Vielleicht wird darauf später eingegangen, dann sollte dies aber auch vermerkt sein!

Seh ich auch so, bin totaler Anfänger und gleich auf der zweiten Seite wo's mit dem Programmieren los geht kenn ich mich schon nicht mehr aus. --Robotriot 00:15, 25. Okt. 2008 (CEST)[Antworten]

Mein Senf dazu[Bearbeiten]

Auch dieses Kapitel halt leider einiges an Kritik verdient. Ich möchte nicht einfach so in der Arbeit anderer Leute herumfuhrwerken, daher liste ich meine Kritikpunkte hier gesammelt auf. Also da wäre:

  • Variablen in C++ sind keine "Bereiche im Speicher, in denen Werte abgelegt werden". Das sind nämlich Objekte in C++. Stark vereinfacht, und aus der etwas komplizierten Definition im Standard kann man allenfalls ableiten: "Variablen sind Objekte, die einen Namen haben", aber das auch nur mit viel Fantasie bzw. Auslegungsspielraum.
  • Konstanten gibt es in C++ in der Form nicht. Das, was in C "Konstante" genannt wird, heißt in C++ "Literal" (Siehe Fußnote 21 in § 2.13, Seite 15). Außerdem gibt es "konstante Ausdrücke" und "konstante Objekte". Letztere sind von einem const-qualified object type. Das alles ist weitaus komplexer, als es hier angerissen wird. Entweder, man führt das Typsystem (incl. cv-qualifier) richtig ein (ja, das ist etwas umfangereicher), oder man vermittelt ungenaues Halbwissen, das den Lernenden später mit Sicherheit auf die Füße fallen wird.
  • Ob man fundamental types am besten mit "Basis-Datentypen" übersetzt, weiß ich nicht. Ich würde im Zweifelsfalle aber stets die Originalbezeichnung mit angeben. Von diesen fundamental types hat C++ laut Standard aber 15: bool, char, signed char, unsigned char, wchar_t, short, unsigned short, int, unsigned int, long, unsigned long, float, double, long double und void.
  • IEEE 754 kennt keinen Gleitkommadatentyp mit 10 Bytes. Es definiert "extended types", die über die beiden Datentypen IEEE-SINGLE und IEEE-DOUBLE hinausgehen, mehr ist nicht festgelegt.
  • Die Mindestgröße für int ist 16 Bit, nicht "entweder oder".
  • Auch auf nicht-64-Bit-Maschinen darf ein long 64 Bit groß sein.
  • Nicht nur jede Variable, sondern jeder Ausdruck und jedes Objekt hat einen festen Typ, der nicht geändert werden kann (auch nicht durch fälschlich so genannte "Typumwandlungs"-Operationen).
  • Ein mit const qualifiziertes Objekt kann durchaus geändert werden. Nur nicht über den mit const qualifizierten Ausdruck.
  • #define definiert Präprozessor-Makros. Warum werden gängige (und nach einer sauberen Einführung auch dem Leser leicht verständliche) Fachbegriffe hier so konsequent gemieden, stattdessen immer mit diffusen Umschreibungen gearbeitet? Ach ja, nochwas: Makros werden nicht textuell ersetzt, sondern tokenweise. Wir sind hier schließlich nicht mehr bei "Uralt K&R C".

Soweit mein Senf zu dem Kapitel in seinem jetzigen Zustand. :-( --RokerHRO 21:39, 16. Mär. 2009 (CET)[Antworten]