答案:因爲 pthread_create() 函數要求的線程函數必須滿足如下格式:
void *ThreadFunc(void *args);
對於普通類成員函數、虛函數,他們實際上都是包含了調用他們的對象的 this 指針,即:經過編譯器優化,線程函數變爲如下所示:
void *(類名)+ ThreadFunc(this, void *args);
這就導致了該函數的格式是不符合 pthread_create() 對線程函數的要求的。故,如果類成員函數做爲線程函數時,必須是靜態的。
(SAW:Game Over!)