#include <iostream>
struct A
{
A()
{
initialize();
}
virtual void initialize()
{
std::cout << "A::initialize()" << std::endl;
}
};
struct B : public A
{
B() : A()
{
initialize();
}
virtual void initialize() override
{
std::cout << "B::initialize()" << std::endl;
}
};
int main(int argc, char const *argv[])
{
B b;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IEEKewoJQSgpCgl7CgkJaW5pdGlhbGl6ZSgpOwoJfQoKCXZpcnR1YWwgdm9pZCBpbml0aWFsaXplKCkKCXsKCQlzdGQ6OmNvdXQgPDwgIkE6OmluaXRpYWxpemUoKSIgPDwgc3RkOjplbmRsOwoJfQp9OwoKc3RydWN0IEIgOiBwdWJsaWMgQQp7CglCKCkgOiBBKCkKCXsKCQlpbml0aWFsaXplKCk7Cgl9CgoJdmlydHVhbCB2b2lkIGluaXRpYWxpemUoKSBvdmVycmlkZQoJewoJCXN0ZDo6Y291dCA8PCAiQjo6aW5pdGlhbGl6ZSgpIiA8PCBzdGQ6OmVuZGw7Cgl9Cn07CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciBjb25zdCAqYXJndltdKQp7CglCIGI7CglyZXR1cm4gMDsKfQ==