我确实了解如何重载操作符,但显然还不完全。
有人能解释一下这个零件的用法吗?
WWindow::operator HWND()
{
// This overloaded operator allows us to use HWND anyway we want
return _hwnd;
}对我来说?
我不明白为什么
operator HWND(){ ... }应该是有效的吗?
发布于 2014-05-13 01:51:24
这是一个自动转换操作符。一般的原型是:
operator TYPE();也就是说,不带返回类型,因为它必须与您要转换到的类型相同。
只要您在需要HWND的地方使用原始对象(类型为WWindow),就会调用此运算符。
请注意,通常将转换运算符设置为const是个好主意
operator HWND() const { ... }但这取决于你想让它做什么。
此外,如果您使用C++11,则可以将它们声明为显式:
explicit operator HWND() const { ... }这样它就不会在任意上下文中被自动调用,而只能在少数更安全的情况下被调用,比如使用static_cast<HWND>(w)或HWND h(w),而不是在DestroyWindow(w)中。
https://stackoverflow.com/questions/23615568
复制相似问题