场景:
1.看到WTL的CWindow源码时会发现这样的operator重载,仔细看会发现它并不是重载()操作符.
operator HWND() const throw()
{
return m_hWnd;
}
如果重载()操作符,应该是,返回值HWND应该在operator的左边,而且应该有两个括号()
HWND operator ()() const throw()
{
return m_hWnd;
}
这种类型的操作符重载应该是type conversion operator(类型转换操作符),它可以把类类型转换为指定的类型,如果定义了这种转换,好处就是该类对象赋值给 method(HWND),参数是HWND类型的方法时会自动转换为HWND类型,或者需要打印这个类信息时。operator std::string().
函数原型:
operator Type()
而重载()操作符确实是需要调用()才会调用,比如obj