Problem mit define
-
Nexus schrieb:
freakC++ schrieb:
freakC++ schrieb:
Vielleicht ist das eine Methodik, die ich noch nicht kenne und die ich noch lernen kann.
Man kann auch
enumnehmen, es hat keinen wirklichen Vorteil. Ich persönlich nutzeenumallerdings nur für Aufzählungen. Mitconst typefür unabhängige Konstanten hat auch mehr Kontrolle über den genauen Typ. Denn sobald es kein Integer mehr ist, muss man wieder zuconst typegreifen. Da bin ich lieber gleich konsistent.Sehe ich auch so.
Den Nachteil, den unskilled anführt kann ich nicht so ganz ernst nehmen.

unskilled schrieb:
-der typ ist eben auch nötig -> noch mehr schreibaufwand als man das selbst hier schon hat
Auch das mit der Adresse ist auch ein wenig fragwürdig. Aus Performancegründen würde ich so etwas sicher nicht machen, vor allem, weil ich mich darauf verlasse, dass so etwas komplett wegoptimiert wird.
Und einen guten Grund, dass es wichtig ist, dass eine Konstante keine Adresse hat würde ich auch gerne kennen.
-
Also bliebe nur noch Kompatibilität zu antiquierten Compilern. Konsequenterweise müsste man damit aber auch andere Sprachmittel meiden.

-
Lassen wir es gut sein, denn ich plädiere nicht dafür, generell
const intdurchenumzu ersetzen. Das ist (wie schon erwähnt) eine Angewohnheit, die ich vor zig Jahren mit Effective C++ aufgeschnappt habe und die sich bei mir festgesetzt hat. Da ich nur noch selten C++ programmiere, werde ich sie nur schwer wieder los.Aber trotzdem: ein
enum { foo = 42 };ist technisch gesehen näher an#define foo 42alsconst int foo = 42;. Dabei gehe ich mal davon aus, dass man die #define-Methode aus irgendeinem einleuchtenden Grund benutzt. Warum es nun in der Praxis nützlich sein könnte, eine Konstante ohne Adresse zu haben, dazu fällt mir gerade auch nichts ein. Aber es ist nun mal der eklatante Unterschied.