#include <iostream>
class ITest {
public:
ITest(){}
virtual ~ITest(){}
virtual void foo() {
if (!this) {
std::cout << "ITest::Blah!" <<std::endl;
return;
}
std::cout << "ITest::Foo!" <<std::endl;
}
};
class Test : public ITest {
public:
virtual void foo() {
if (!this) {
std::cout<<"Blah!"<<std::endl;
return;
}
std::cout<<"Foo!"<<std::endl;
}
};
int main() {
Test* t = NULL;
t->foo();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgSVRlc3QgewpwdWJsaWM6CiAgICBJVGVzdCgpe30KICAgIHZpcnR1YWwgfklUZXN0KCl7fQogICAgdmlydHVhbCB2b2lkIGZvbygpIHsKICAgICAgICBpZiAoIXRoaXMpIHsKICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJJVGVzdDo6QmxhaCEiIDw8c3RkOjplbmRsOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHN0ZDo6Y291dCA8PCAiSVRlc3Q6OkZvbyEiIDw8c3RkOjplbmRsOwogICAgfQp9OwoKY2xhc3MgVGVzdCA6IHB1YmxpYyBJVGVzdCB7CnB1YmxpYzoKICAgIHZpcnR1YWwgdm9pZCBmb28oKSB7CiAgICAgICAgaWYgKCF0aGlzKSB7CiAgICAgICAgICAgIHN0ZDo6Y291dDw8IkJsYWghIjw8c3RkOjplbmRsOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHN0ZDo6Y291dDw8IkZvbyEiPDxzdGQ6OmVuZGw7CiAgICB9Cn07CgppbnQgbWFpbigpIHsKICAgIFRlc3QqIHQgPSBOVUxMOwogICAgdC0+Zm9vKCk7CiAgICByZXR1cm4gMDsKfQ==