首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WWindow::operator HWND() { return _hwnd;}

WWindow::operator HWND() { return _hwnd;}
EN

Stack Overflow用户
提问于 2014-05-13 01:48:05
回答 1查看 354关注 0票数 1

我确实了解如何重载操作符,但显然还不完全。

有人能解释一下这个零件的用法吗?

代码语言:javascript
复制
WWindow::operator HWND()
{
    // This overloaded operator allows us to use HWND anyway we want
    return _hwnd;
}

对我来说?

我不明白为什么

代码语言:javascript
复制
operator HWND(){ ... }

应该是有效的吗?

EN

回答 1

Stack Overflow用户

发布于 2014-05-13 01:51:24

这是一个自动转换操作符。一般的原型是:

代码语言:javascript
复制
operator TYPE();

也就是说,不带返回类型,因为它必须与您要转换到的类型相同。

只要您在需要HWND的地方使用原始对象(类型为WWindow),就会调用此运算符。

请注意,通常将转换运算符设置为const是个好主意

代码语言:javascript
复制
operator HWND() const { ... }

但这取决于你想让它做什么。

此外,如果您使用C++11,则可以将它们声明为显式:

代码语言:javascript
复制
explicit operator HWND() const { ... }

这样它就不会在任意上下文中被自动调用,而只能在少数更安全的情况下被调用,比如使用static_cast<HWND>(w)HWND h(w),而不是在DestroyWindow(w)中。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23615568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档