和WINDOWS程序设计相关~在线期待~
最近在学WINDOWS程序设计~看到线程的封装~对静态函数产生了点想法~我定义了两个类~在继承类当中有一个静态函数~然后对虚拟函数进行了调用~想看看调用的是哪一个~可能函数指针用的不好~但结果还是有很多错误~请指点~
#include <iostream>
using namespace std;
typedef void (*pv)();// pv 为函数指针类型
class aa
{
public:
aa(){}
~aa(){}
virtual void va(){cout<<"aa"<<endl;}
};
class bb :
public aa
{
public:
static void bf(pv ff){*ff();}
bb(){}
~bb(){}
virtual void va(){cout<<"bb"<endl;}
};
int main()
{
bb li;
li.bf(li.va); //调用的是哪一个
return(0);
}
我想应该是继承类的吧~因为虚拟机制只在指针和引用中奏效~但现在编译不通过~:( 还有在学进程的封装时~在一个静态函数中用到了this指针~不是只可以调用静态变量吗~?
DWORD WINAPI CThread::ThreadProc(LPVOID pv) //这是静态函数
{
CThread* pThread = (CThread*)pv;
return pThread->ThreadProc();
}
BOOL CThread::Create()
{
BOOL bRet = FALSE;
m_hThread =::CreateThrea(0,0,ThreadProc,this,0,&m_dwThreadId); //THIS指针做参数,传给了静态函数THREADPROC,可以~?
if (m_hThread)
{
bRet = TRUE;
}
return bRet;
}