Du bist nicht angemeldet.

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

NoName

Treue Seele

  • »NoName« ist der Autor dieses Themas

Beiträge: 118

Beruf: Student

  • Private Nachricht senden

1

23.09.2003, 21:39

Definition von Casting-Operatoren für Klassen (static_cast)

Hallo!

Wie definiere ich Casting-Operatoren für meine Klassen/Strukturen für static_cast, reinterpret_cast, etc.?

2

02.11.2003, 16:47

Hm? Meinst du, wie man die cast-operatoren überläd? Das geht nicht!! Die Castoperatoren können nicht überladen werden.
Ein Gespenst geht um in Europa...

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

3

02.11.2003, 16:56

casts kann man nicht überladen, denn es sind keine Funktionen/Variablen!

Da sie compiler anweisungen sind wie z.B. sizeof(); usw.

Um eine struktur auf eine andere struktur zu casten muss man ein sog. downcasting machen. Dann muss aber sichergestellt sein das beide klassen von ein und dem selben typ sind oder eine oder sogar beide abgeleitet wurden von einer Basisklasse

4

04.11.2003, 02:06

Sofern der zu castende Typ nicht so abwaegig ist, gibt es noch diese Moeglichkeit

Quellcode

1
2
3
4
5
6
class Vector
{
  float x,y,z;

  operator float* () { return &x; }
};

Das ist einvollwertiger casting-Operator und erlaubt dann sowas

Quellcode

1
2
Vektor v;
float* pf = v;

Aber wie schon gesagt, sollte man nur machen, wenn der zu castende Typ nicht gaenzlich anders ist.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige