2012-04-26 17 views
0

私は学校の割り当てでのシングルトンデザインパターンを実装しています、これは私のクラスのヘッダファイルです:-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

あなたはヘッダファイルをコンパイルしようとしていない、あなたはありますか? –

+0

エラーを報告する行を削除しますか? – KevinDTimm

+0

ヘッダー、あなたまたは先生は誰ですか?あなたがそれをした場合は、ヘッダーから '_singleton'の宣言を削除してください。スケジューラは1つではなく、ソースファイルごとに1つのスケジューラに制限されます。教師がそれを行い、あなたがそれを変更できない場合、あなたは警告を取り除く方法を彼に尋ねることに悩まされている、と思う。 –

答えて

4

スタティックシングルトンインスタンスポインタは、クラスメンバである必要があります。現在のところ、それは単なるフリーポインタです。

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

と実装ファイルに:

Scheduler * Scheduler::_singleton = 0; 
+0

'_singleton'の定義は' static'であってはならず、 'cpp'ファイルにも移動しなければなりません。 – Lol4t0

+0

http://ideone.com/pzn6X – Lol4t0

+0

@ Lol4t0ああ申し訳ありませんが、あなたのコメントを誤解しました。私はポインタが静的であってはならないとあなたが思ったと思った:-) – juanchopanza