Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#8

Re: Umstieg von C++ auf Delphi (vector = ObjectList ?)

  Alt 5. Jun 2009, 09:18
TClass(instance) => static_cast<>()
instance as TClass => dynamic_cast<>()

Beim ersten findet keine Typprüfung statt, schlägt somit auch nie fehl (static cast halt). Zweiteres macht eine Typprüfung und wirft eine Exception wenn der Typ nicht stimmt (Enthält somit eine IS Prüfung).

In C++ ist der as und is Operator in dem dynamic_cast<>() zusammen gefasst. Eine reine Typprüfung mit boolschen Ergebnis führt der IS Operator durch (wäre bei C++ die Überprüfung auf NULL nach dem dynamic_cast<>()). Der AS Operator führt eine Typprüfung durch und bei Erfolg den Cast. Bei Nichterfolg wirft er eine entsprechende Exception (im Gegensatz zum dynamic_cast<>() welcher still NULL zurück gibt).
  Mit Zitat antworten Zitat