c++/dcast.cpp
changeset 165 f551b78c3eee
new file mode 100644
--- /dev/null
+++ b/c++/dcast.cpp
@@ -0,0 +1,38 @@
+#include <typeinfo>
+#include <iostream>
+
+using namespace std;
+
+class A {
+  public:
+    void f () {
+        cout << "Ich bin f() in der Klasse A\n";
+    }
+};
+
+class B:public A {
+  public:
+    void f () {
+        cout << "Ich bin f() in der Klasse B\n";
+    }
+};
+
+class C {
+  public:
+    void f () {
+        cout << "Ich bin auch ein f()\n";
+    }
+};
+
+int main ()
+{
+    A *ap = new A ();
+    B *bp = new B ();
+
+    // instanceof
+    C *cp = dynamic_cast < A * >(bp);
+    if (cp != NULL)
+        cp->f ();
+
+    return 0;
+}