c++/dcast.cpp
author Markus Bröker<broeker.markus@googlemail.com>
Fri, 20 Oct 2017 06:46:47 +0200
changeset 170 5a11538e7bc8
parent 165 f551b78c3eee
permissions -rw-r--r--
hgignore added

#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;
}