Listing 1

class A {
    int i;
public:
    A(): i(0) {};
    ~A() {};
    virtual int get_val() { return i; };
};
class B : public A {
    int j;
public:
    B(): j(45) {};
    ~B() {};
}
int foo(void) 
{
    B b, *bp;
    bp = &b;
    return bp->get_val();
}