为什么类中的线程函数必须要声明静态?

来源:互联网 发布:缠论骗局 知乎 编辑:程序博客网 时间:2024/03/29 20:42
之前也没注意到这问题,大家先搞清楚下面几个关键词吧:
class CMyTest{public:    CMyTest();    ~CMyTest();    DWORD   Start();    static DWORD WINAPI ThreadFun(LPVOID);    // ....};void main(){    CMyTest test;    // .....}

其中CMyTest是一个类,main函数中test是这个类的一个局部变量(对象)。


看完上面这个例子,再仔细推敲一下下面这段话:




类的静态函数不属于该类的任何一个对象,而是属于类本身,所以不受对象局部变量的影响,在运行时可以直接调用类的静态函数,从而启动线程!


相反,如果一个类的一个局部对象的生命周期结束了,难道线程函数就不能用了吗?

原创粉丝点击