我继承了(没有双关语)一些具有以下内容的代码:
class Base {
public:
static Base* GetInstance() {
return pInstance; //static member (initialized as Singleton with new Base();
}
void Foo();
};
class Derived : public Base {
Derived() {}
public:
Bar();
};
它的用法如下:
((Derived*)Base::GetInstance())->Bar();
这是定义的行为吗?
它可以在MSVC上运行,我知道为什么可以定义它,但是我不知道如何验证它是否正确(除了要求一些智慧)。