c++/dcast.cpp
author Markus Bröker <mbroeker@largo.dyndns.tv>
Fri, 27 Dec 2013 16:00:09 +0100
changeset 167 7c6b221900bf
parent 165 f551b78c3eee
permissions -rw-r--r--
Proper Datatypes to leave the 80's

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