#include <stdio.h>
class A
{
public:
int A_1;
public:
virtual int vFun0()
{
A_1 = 0;
vFun1();
return A_1;
}
virtual int vFun1()
{
A_1 = 1;
return A_1;
}
};
class a:public A
{
public:
int a_1;
public:
int fun()
{
return vFun0();
}
virtual int vFun1()
{
A_1 = 2;
return A_1;
}
};
int main()
{
A A1;
a a1;
a1.fun();
printf("fdsfdf");
getchar();
return 0;
}
a1.fun(),经过调试调用的顺序是这样的,a::fun()----->A::vfun0()---------->a::vfun1();
void Commit()
{
DWORD dwRet = 0;
HANDLE hHandle[2];
hHandle[0] = m_hExit;
hHandle[1] =m_hEvent;
while (TRUE)
{
dwRet = WaitForMultipleObjects(2, hHandle, FALSE, INFINITE);
if (dwRet == WAIT_OBJECT_0)
{
if (!m_dqTask.empty())
{
DoTask();
}
break;
}
else if (dwRet == WAIT_OBJECT_0+1)
{
ResetEvent(m_hEvent);
DoTask();
}
Sleep(1);
}
}