#include <iostream>
struct B
{
virtual void f(int i = 42) { std::cout << "B" << i << std::endl; }
};
struct D : B
{
virtual void f(int i = 100500) { std::cout << "D" << i << std::endl; }
};
int main() {
B* b = new D;
b->f();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IEIKewoJdmlydHVhbCB2b2lkIGYoaW50IGkgPSA0MikgeyBzdGQ6OmNvdXQgPDwgIkIiIDw8IGkgPDwgc3RkOjplbmRsOyB9Cn07CgpzdHJ1Y3QgRCA6IEIKewoJdmlydHVhbCB2b2lkIGYoaW50IGkgPSAxMDA1MDApIHsgc3RkOjpjb3V0IDw8ICJEIiA8PCBpIDw8IHN0ZDo6ZW5kbDsgfQp9OwoKaW50IG1haW4oKSB7CglCKiBiID0gbmV3IEQ7CgliLT5mKCk7IAp9