一个C++运算符有关问题,这次一定要搞清楚了,高分

一个C++运算符问题,这次一定要搞清楚了,高分求助
class CWnd : public CCmdTarget
{
public:
HWND m_hWnd;            // must be first data member
operator HWND() const;

是把HWND转化成运算符,但是一直不知道之后HWND用在哪里?怎么用的?

写如下测试代码,T就是仿照HWND来定义的. 接下来T怎么用?就是能不能给个表达式。
#define  T  void*
class TEST
{
public:
int *t;
operator T();
void testFunction();
protected:
private:
};

TEST::operator T()
{
return t;
}
void TEST::testFunction()
{
T AA; // 这些都可以编译过,
T(aa); //
}

C++ MFC

------解决方案--------------------

class TEST
 {
 public:
 int *t;
 operator int*();
 void testFunction();
 TEST(int *p)
 {
 t = p;
 }
 protected:
 private:
 };

 TEST::operator int*()
 {
 return t;
 }

这样用
int n = 1;
TEST t(&n);
int *p = t;

------解决方案--------------------
"是把HWND转化成运算符,但是一直不知道之后HWND用在哪里?怎么用的?",并不是把HWND转换成运算符,HWND只是返回值,运算符是"",比如说看到

CWnd win;
win.create();

HWND h = win;

就是调用win的""方法,比较隐晦,你可以自己试试,operator 只写返回值不写符号,然后在外面类似的调用.