2011-12-16 8 views
2

以下を試して、2つのログステートメントの間でエミュレータがクラッシュする。何か間違っていますか?スタティックメンバ関数を使用して、C++で非constスタティックメンバ変数を初期化する

protected: 
    static int maxSize; 
public: 
    static void setFontSizeRange(int max) { 
     Log("here %d->%d", max, maxSize); 
     maxSize = max; 
     Log("ok"); 
    } 

Iパラメータを再現するログを取得することができ、それは静的メンバを出力する前にクラッシュした(それはそれを指す動作しない上に示した最初のログ)。

ありがとうございました。

+0

どのエミュレータですか?プラットフォーム?環境? –

+0

静的メンバーをどこかに定義しましたか? (定義と宣言の違いに注意してください)。 – Griwes

+0

Griwes、あなたは、サンプルの静的メンバーへの私のすべての参照を見ることができます(後のリファレンスは存在しますが、実行するチャンスはありません)。 @ D.Shawley、これはEclipse for Bada for Windowsで、Windows上で動作します。 – John

答えて

2

静的メンバーを定義する必要があります。

class Something 
{ 
protected: 
    static int maxSize; 
public: 
    static void setFontSizeRange(int max) { 
     Log("here %d->%d", max, maxSize); 
     maxSize = max; 
     Log("ok"); 
    } 
}; // class declaration ends here... 

int Something::maxSize = 0; 
+0

これはいつも私をひっくり返します、ありがとう。今ではokですので、唯一の静的constのためには、初期化されたエラーになるかもしれません! – John

関連する問題