将Base实例强制转换为没有成员的派生类

时间:2019-01-13 18:04:32

标签: c++ casting polymorphism

我继承了(没有双关语)一些具有以下内容的代码:

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上运行,我知道为什么可以定义它,但是我不知道如何验证它是否正确(除了要求一些智慧)。

0 个答案:

没有答案