-1

次のコードでは:

class A
{
public:
    static void StaticFunction(int variable){ }
    void NonStaticFunction() { }

private:
    int nonStaticVariable;
};

「変数」を取得して「NonStaticFunction」で使用する必要があります

「nonStaticVariable」を静的にしてその値を「変数」に割り当てようとしましたが、それでも「NonStaticFunction」で静的変数を使用する必要があり、リンカー エラーがスローされます。

Error   2   error LNK2001: unresolved external symbol "public: static unsigned int A::staticVariable" (?staticVariable@A@@2IA)

それを解決する方法はありますか?

4

3 に答える 3

1

静的関数でパラメーターを使用する必要はありません

class A
 {
  public:
      static void StaticFunction(int // you don't need it ){ }
     void NonStaticFunction() { }

 private:// it can't be static and private ????
      static int nonStaticVariable;
  };

    int A:: nonStaticVariable = 0 ;

  void A::StaticFunction(/*int v */){
    you can use directly your static variable and if you declared parameter in your function 
    v= nonStaticVariable;

  }
于 2013-05-30T12:51:41.800 に答える