Kann es sein, daß das in der BCB Hilfe stehende Beispiel zu dynamic_cast...?
-
Hallo Leute,
Kann es sein, daß das in der BCB Hilfe stehende Beispiel zu
dynamic_cast fehlerhaft ist??Guckt Ihr Euch das Beispiel mal an!
epidemic
-
Was soll falsch sein?
-junix
-
Ausserdem wäre noch Builder-Version interessant, da sich Borland bemüht fehler zu korrigieren (o;
-junix
-
Version 5 Enterprise.
Es werden casts durchgeführt, die an sich nix bewirken.
epidemic
-
zeig mal den bsp:
-
Ich hab auch BCB 5 Ent, bei mir ist folgendes Beispiel:
// HOW TO MAKE DYNAMIC CASTS // This program must be compiled with the -RT (Generate RTTI) option. #include <iostreamstd::> #include <typeinfo.h> class Base1 { // In order for the RTTI mechanism to function correctly, // a base class must be polymorphic. virtual void f(void) { /* A virtual function makes the class polymorphic */ } }; class Base2 { }; class Derived : public Base1, public Base2 { }; int main(void) { try { Derived d, *pd; Base1 *b1 = &d; // Perform a downcast from a Base1 to a Derived. if ((pd = dynamic_cast<Derived *>(b1)) != 0) { std::cout << "The resulting pointer is of type " << typeid(pd).name() << std::endl; } else throw Bad_cast(); // Attempt cast across the hierarchy. That is, cast from // the first base to the most derived class and then back // to another accessible base. Base2 *b2; if ((b2 = dynamic_cast<Base2 *>(b1)) != 0) { cout << "The resulting pointer is of type " << typeid(b2).name() << endl; } else throw Bad_cast(); } catch (Bad_cast) { cout << "dynamic_cast failed" << endl; return 1; } catch (...) { cout << "Exception handling error." << endl; return 1; } return 0; }
Ich hab es aber nicht getestet...