我有些不明白。

我们重写了InitInstance okey,但是在CwinApp类中有许多虚函数
并创建不是指针的App对象。这是对象。

这不适合c++多态性规则

我有错吗?

class CMyApp : public CWinApp {
public:
    virtual BOOL InitInstance(void);//override
};
CMyApp theApp; //then create object

最佳答案

CMyApp theApp;

如果静态(即在编译期间)类型与动态(即在运行时)类型不同,则该对象被称为多态的。在上面的语句中,theApp的静态和动态类型相同,即CMyApp
CWinApp *polyApp = new CMyApp();

在上述情况下,polyApp静态类型为CWinApp,动态类型为CMyApp

关于c++ - MFC中的C++多态性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35965946/

10-12 15:04