class CWaveOut
{
public:
static DWORD WINAPI AudioOutThreadProc(LPVOID lpParameter);
//....
protected:
friend DWORD WINAPI AudioOutThreadProc(LPVOID lpParameter);
};
DWORD WINAPI CWaveOut::AudioOutThreadProc(LPVOID lpParameter){
//...
}
----------------------------------------------------
看不大懂怎么会有两声明?
为什么声明成这个样子?
请大家说清楚了,谢谢!
{
public:
static DWORD WINAPI AudioOutThreadProc(LPVOID lpParameter);
//....
protected:
friend DWORD WINAPI AudioOutThreadProc(LPVOID lpParameter);
};
DWORD WINAPI CWaveOut::AudioOutThreadProc(LPVOID lpParameter){
//...
}
----------------------------------------------------
看不大懂怎么会有两声明?
为什么声明成这个样子?
请大家说清楚了,谢谢!
class CWaveOut
{
public:
static DWORD WINAPI AudioOutThreadProc(LPVOID lpParameter);
//....静态函数声明,需要在类的外部定义
protected:
friend DWORD WINAPI AudioOutThreadProc(LPVOID lpParameter);
//友元函数声明,表示这个函数可以访问类CWaveOut的成员
};
//
DWORD WINAPI CWaveOut::AudioOutThreadProc(LPVOID lpParameter)
{
//...
}
class CWaveOut
{
public:
friend void AudioOutThreadProc(int lpParameter);
private:
int a;
};
void AudioOutThreadProc(int lpParameter)
{
CWaveOut t;
t.a=5;
}
{
public:
static DWORD WINAPI AudioOutThreadProc(LPVOID lpParameter);
BOOL StartThread()
//....
protected:
friend DWORD WINAPI AudioOutThreadProc(LPVOID lpParameter);
};
DWORD WINAPI CWaveOut::AudioOutThreadProc(LPVOID lpParameter){
//...
}BOOL CWaveOut::StartThread()
{
//...
m_hAudioOut=CreateThread(0,0,AudioOutThreadProc,this,0,&m_dwAudioOutId);
//...
}
怎么一个实现函数,既可以是友元,可以是静态,并且还是分开声明的?
假如就声明成一个友元行吗?究竟是怎么回事,晕了!!
MyCSDN - CSDN离线数据浏览工具。(恒金软件出品)
可下载论坛文件、文档文章和全文搜索论坛数据以供离线浏览。支持签名回复。
下载地址:http://nj.onlinedown.net/soft/6591.htm
MyCSDN - CSDN离线数据浏览工具。(恒金软件出品)
可下载论坛文件、文档文章和全文搜索论坛数据以供离线浏览。支持签名回复。
下载地址:http://nj.onlinedown.net/soft/6591.htm
你自己仔细看函数的说明, 有"ThreadProc"对吧?证明这是一个线程处理函数,
你再查查MSDN的线程处理函数的声明必须是什么格式,对了,必须是一个全局函数,
标准格式是:
DWORD WINAPI ThreadProc(
LPVOID lpParameter
);
那么在一个类里面,怎么声明一个全局函数了,那就是使用静态函数了,所有是static修饰
1.作用域不同。全局函数的作用域是全局,而类的静态函数作用域是该类。这就限定了全局函数不能够访问类的私有和保护变量而类的静态函数就能。
2.限制不同。每个类都可以有名为GetClassID这样的静态函数,而全局函数有且仅能有一个名为GetClassID的函数。-------------------------------------------------------
MyCSDN - CSDN离线数据浏览工具。(恒金软件出品)
可下载论坛文件、文档文章和全文搜索论坛数据以供离线浏览。支持签名回复。
下载地址:http://nj.onlinedown.net/soft/6591.htm