怎么說呢, 這是一個(gè)作用域的問題!
成員函數(shù)的作用域是類域, 而在類體外加上static不是表示靜態(tài)函數(shù),表示的是函數(shù)擁有文件域(file scope)
而類域是小于文件域,強(qiáng)行把類域擴(kuò)大到文件域,就會(huì)出錯(cuò)。
如下代碼:
class CA {
public:
static void display(void);
};
static void CA::display(void) { // ERROR!
cout < < "Hello CA!" < < endl;
}
int main(int argc, char* argv[]) {
CA::display();
}
// error C2724: 'CA::display' : 'static' should not be used on member functions defined at file scope