2012-04-26 85 views
0

我採取在學校分配Singleton設計模式,這是我的類的頭文件:-Wunused變量警告

class Scheduler { 
public: 
    static Scheduler * instance(); 
    ~Scheduler(); 

private: 
    Scheduler(); 
}; 

static Scheduler * _singleton = 0; // WARNING HERE 

我的問題是,我不斷收到此錯誤:

../Scheduler.h:60:20: warning: ‘_singleton’ defined but not used [-Wunused-variable] 

我們必須提交沒有編譯警告的作業。我如何擺脫這個警告?我不需要在頭文件中使用_singleton,所以我不知道該怎麼做。我知道這是愚蠢的,但仍然...

想法?

+1

你是不是想編譯頭文件,是嗎? – 2012-04-26 19:59:57

+0

刪除報告錯誤的行嗎? – KevinDTimm 2012-04-26 20:00:07

+0

誰寫的標題,你或老師?如果你這樣做了,從標題中刪除'_singleton'的聲明;它會限制每個源文件一個調度程序,而不是一個調度程序。如果老師這樣做了,而且你不能修改它,那麼你堅持要問他如何擺脫警告,我想。 – 2012-04-26 20:03:08

回答

4

你的靜態單例實例指針應該是一個類成員。目前它只是一個免費指針。

class Scheduler { 
// as before 
private: 
    Scheduler(); 
    static Scheduler* _singleton; // declare it in the class 
}; 

,並在實現文件:

Scheduler * Scheduler::_singleton = 0; 
+0

'_singleton'的定義不應該是'static',並且也應該移動到'cpp'文件。 – Lol4t0 2012-04-26 20:22:15

+0

http://ideone.com/pzn6X – Lol4t0 2012-04-26 20:25:51

+0

@ Lol4t0啊對不起,我誤解了你的評論。我以爲你的意思是指針不應該是靜態的:-) – juanchopanza 2012-04-26 20:26:59