Richtiges Casten
-
Beispiel:
// Irgendeine Klasse mit Daten: class xyz_c { // Daten }; xyz_c * first; xyz_c * last; // mit den beiden Zeigern arbeiten... // Anzahl der Elemente auslesen: int count() { return last-first; return int(last-first); return (int) (last-first); return static_cast<int>(last-first); }Meine Frage:
Wie caste ich richtig, wenn ich zB die Anzahl der Elemente wissen möchte (int count()):
Gruss
T.
-
Tomahawk schrieb:
Wie caste ich richtig, wenn ich zB die Anzahl der Elemente wissen möchte
Ich stelle mal gleich die Zusatzfrage für dich:
Und wie rechne ich richtig, wenn ich die Anzahl der Elemente wissen möchte?
-
Das Ergebnis ist vom Typ
ptrdiff_t. Was das ist hängt von der jeweiligen Plattform ab und muss nicht unbedingt in einintpassen.
-
Nicht casten. Nur den richtigen Typ nehmen. Dann ist auch die Warnung weg. Und wenn sich was verändert, was Du wissen solltest, zum Beispiel größerer Adressbereich und zu kleiner Rückgabetyp, kommt die Warnung von alleine wieder. Genial, oder?
Ansonsten hier wohl static_cast
-
hmpf schrieb:
Tomahawk schrieb:
Wie caste ich richtig, wenn ich zB die Anzahl der Elemente wissen möchte
Ich stelle mal gleich die Zusatzfrage für dich:
Und wie rechne ich richtig, wenn ich die Anzahl der Elemente wissen möchte?
wenn er first und last wie z.bsp. auf cplusplus.com verwendet, dann stimmt seine rechnung

bb