Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Zitat
Aber der new[]-Operator streikt wenn dein Objekttyp keinen Standardkonstruktor hat.
Zitat
Aber das Problem ist ja nicht immer vorhanden. Das Nullsetzen eines Zeigers in einem Destruktor macht z.B., im Allgemeinen, keinen wirklichen Sinn.
Zitat von »"knivil"«
@David_pd:
Zitat
Aber der new[]-Operator streikt wenn dein Objekttyp keinen Standardkonstruktor hat.
Dann definiert man sich einen :-). Bevor man mit selten genutzten Sprachfeatures wie placement new herumspielt, sollte man erstmal versuchen darauf zu verzichten. Fuer das gegebene Problem fallen mir spontan 2 verschiedene Moeglichkeiten ein.
Zitat von »"knivil"«
Zitat
Aber das Problem ist ja nicht immer vorhanden. Das Nullsetzen eines Zeigers in einem Destruktor macht z.B., im Allgemeinen, keinen wirklichen Sinn.
Ich wuerde es mal so formulieren: Das Problem besteht immer, ausser in einigen Sonderfaellen :-). Wobei der Compiler dann pPlayer = 0 wegoptimiert. Und dass das ein Flaschenhals mal werden sollte, schwer vorzustellen.
Zitat von »"dot"«
der standard definiert das verhalten von a als gleichbedeutend mit *(a + b).
da a + b das gleiche ist wie b + a folgt daraus direkt dass a[b] das gleiche ist wie b[a]...
Quellcode |
|
1 2 3 4 5 |
A[i] = *(A + sizeof( O ) * i) //syntax // byte ebene *(A + i) = *(A + sizeof( O ) * i) *(i + A) = *(i + sizeof( i ) * A) |
Zitat von »"knivil"«
Hierzu haette ich gern mal eine Referenz, ansonsten wuerde ich es mal als Falsch abtun.
Zitat von »"C++ Standard 2003 §5.2.1"«
[...] The type “T” shall be a completely-defined object type.The expression E1[E2] is identical (by definition) to *((E1)+(E2)).
Werbeanzeige