class ClassA : public Microsoft::WRL::RuntimeClass<IFooBar> { public: virtual HRESULT RuntimeClassInitialize(ParamsForClassA); }
现在我想写一个ClassB固有的ClassA并重写它的RuntimeClassInitialize函数,如下所示:
class ClassB : public ClassA { public: HRESULT RuntimeClassInitialize(ParamsForClassB) { // implementation goes here } }
我创build了一个指向ClassB对象的指针,如下所示:
ComPtr<ClassB> ptr; HRESULT hr = MakeAndInitialize<ClassB>(&ptr,ParamsForClassB);
但是,这实际上是到ClassA的RuntimeClassInitialize构造函数。 ClassB的RuntimeClassInitialize代码path永远不会被命中。
结合位图 – GDI / GDI +?
在命令行和Makefile中定义macros,使用gcc编写linux,编写c代码
Linux中的全局variables.ko多个设备
为什么这个程序崩溃?
如何在运行exe后closurescmd窗口。 从它的文件?
我想知道这是否是扩展WRL课程的正确方法? 我在哪里做错了代码?
检测进程是否崩溃(或停止)的简单方法?
如何阅读.obj文件?
可以用C改变屏幕亮度?
Linux开发人员知道C ++?
您需要重写的方法在两个类上都具有相同的签名 。
这个
HRESULT RuntimeClassInitialize(ParamsForClassA);
不能被这个覆盖
HRESULT RuntimeClassInitialize(ParamsForClassB);
因为他们有不同的论点。
这是一个超载 ,而不是一个覆盖 。 (而这样的重载会导致名称隐藏 )
你可以在这里或这里找到签名的信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。