说我想在windows Window函数周围编写一个包装器。然后我让Window构造函数创建一个窗口并关联一个内部窗口过程,该过程又调用虚函数。
什么是优先清理?
在RAII之后,该类的析构函数应该调用DestroyWindow。然后WM_CLOSE需要重新调整0并以某种方式将窗口发出超出范围的信号(通过使用不是RAII的管理器,是吗?)。
通过“删除此”在WM_DESTROY中进行所有清理,强制窗口由new分配。
答案 0 :(得分:2)
后一种方法(delete this
)是有问题的,如果你有其他客户端引用它(它们现在留有无效指针),它会强制你在堆上分配你的对象并要求你引入某种引用计数。
还有一种情况是您希望将窗口对象临时附加到“外部”HWND - 在这种情况下,您还需要解除对象和窗口的生命周期,因此第一种方法不能正常工作。 / p>
只是我的2美分。