CEvent ThreadBegin;在下面的代码里调用的ThreadBegin.m_hObject,
::WaitForSingleObject(ThreadBegin.m_hObject,INFINITE);而我又在一本书这发现他是这样调用的:::WaitForSingleObject(ThreadBegin,INFINITE);少了那个m_hObject成员,就是整个对象,请问这两个之间是什么关系,这两种调用有什么不同.
单单去掉那个成员的话,我看运行结果都是一样的.
::WaitForSingleObject(ThreadBegin.m_hObject,INFINITE);而我又在一本书这发现他是这样调用的:::WaitForSingleObject(ThreadBegin,INFINITE);少了那个m_hObject成员,就是整个对象,请问这两个之间是什么关系,这两种调用有什么不同.
单单去掉那个成员的话,我看运行结果都是一样的.
完全一样的原因是CEvent的基类中有以下这个函数:
operator HANDLE
它可以隐式的第二种方式转换为第一种方式
operate HANDLE() const;
它在其基类CSyncObject中定义的。