Problem mit casten von TPersistent
-
Hallo,
wenn ich den unten abgebildeten Delphi-Code nach CG2009 übersetze erhalte ich beiTClassA* tcla = dynamic_cast<TPersistent*>(Source);
die Fehlermeldung
[BCC32 Fehler] Unit2.cpp(1209): E2034 Konvertierung von 'TPersistent *' nach 'TClassA *' nicht möglich.Kann mir jemand sagen woran das liegt und weiterhelfen?
(*Delphi*) procedure TClassA.Assign(Source: TPersistent); begin if Source is TClassA then begin ... end else inherited Assign(Source); end;
//meine C++ Übersetzung class TClassA : public TPersistent { typedef TPersistent inherited; ... public: virtual void __fastcall Assign(TPersistent* Source); ... } void __fastcall TClassA::Assign(TPersistent* Source){ TClassA* tcla = dynamic_cast<TPersistent*>(Source); if (tcla) { ... } else inherited::Assign(Source); }
-
Du willst doch nach TClassA casten, also:
TClassA* tcla = dynamic_cast<TClassA*>(Source);
-)
-
Hallo @Th69,
ich find' das normalerweise zum K**zen, wenn man sich über die Schwächen der Anderen totlacht :D! Aber in diesem Fall mach ich mal 'ne Ausnahme :D!
Tausend Dank.
-
Ich habe mich nicht totgelacht (ich lebe noch!), sondern es war ja nur ein Grinse-Smilie -)
P.S. Ich hätte dir ja auch
TClassA* tcla = (TClassA*) dynamic_cast<TPersistent*>(Source);
empfehlen können