017
20.11.2004, 18:20 Uhr
0xdeadbeef
Gott (Operator)
|
C++: |
m_size = unsigned(m_size * (1.0 + percentage / 100.0));
|
ist ein Konstruktor-Aufruf, nicht mal wirklich ein cast. Ich konstruiere einen unsigned aus einem double. Übrigens sähe ein C-Style-cast so aus:
C++: |
m_size = (unsigned) (m_size * (1.0 + percentage / 100.0));
|
Was die Konstanten angeht, in diesem Fall steht direkt daneben, was sie bedeuten. Und wenn ich das mit const unsigneds machen würde, müsste ich mir sinnigerweise, ums dynamisch zu halten, ne stringstream-Konstruktion basteln, und das frisst Laufzeit. Oder ich komm mit dem Präprozessor und schreibe
C++: |
#define MAX 1000 #define MIN 2
// ...
int foxes = read_from_stdin("Anzahl Füchse (" #MIN " - " #MAX "): ", MIN, MAX);
|
...und ob das so viel lesbarer ist, ist mindestens streitbar, ganz ab von den generellen Nachteilen, die der PP so mit sich bringt. Ganz abgesehen davon, dass es dann mit den unsigneds nicht mehr hinhaut, denn mit
C++: |
#define MAX 1000U #define MIN 2U
|
sieht der String nachher ziemlich scheiße aus. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 20.11.2004 um 18:28 Uhr von 0xdeadbeef editiert. |