#include <iostream>
using namespace std;

class A {
    public:
    void foo() {
        cout<<"A.foo"<<endl;
    }
};

class B : public A {
    public:
    void foo() {  // not overridden but new method with same name
        cout<<"B.foo"<<endl;
    }
};

int main() {
    A* a;
    B b;  // implicitly calls constructor
    a = &b;
    a->foo();
}