我在自己写得类里定义了一个静态变量例如
  class Cmyclass{
   public:
     static int computer;
我在其他地方调用这个变量例如
   Cmyclass::computer 
但是编译过程中出现错误
   myclass.obj : error LNK2001: unresolved external symbol "public:   Cmyclass::computer" (?computer@myclass@@2@@A)

解决方案 »

  1.   

    你必须在类的内部实现中分配computer的空间和初始化比如int Cmyclass::computer = 0;
      

  2.   

    你用extern static int computer;试试,或者不要用Cmyclass,而是直接用某个对象.computer
      

  3.   

    In C++, when modifying a data member in a class declaration, the static keyword specifies that one copy of the member is shared by all the instances of the class. When modifying a member function in a class declaration, the static keyword specifies that the function accesses only static members.class SavingsAccount
    {
    public:
       static void setInterest( float newValue )  // Member function
          { currentRate = newValue; }             //    that accesses
                                                  //    only static
                                                  //    members
    private:
       char name[30];
       float total;
       static float currentRate;    // One copy of this member is
                                    //    shared among all instances
                                    //    of SavingsAccount
    };// Static data members must be initialized at file scope, even
    //    if private.
      

  4.   

    在用之前需要初始化,因为静态成员变量属于类,你犯的错误就象在头文件里定义了一个类成员函数,但在CPP文件里未把它实现,所以你应该在相应的CPP文件中,把它初始化
    int Cmyclass::computer  = 0;
      

  5.   

    把bluestar(蓝色星星) 那句话放在该类.cpp文件最前面
      

  6.   

    另外,对静态成员变量初始化的一点体会,它不能在类的构造函数初始化.
    应该在该类的.cpp文件中初始化
    如:int CSendSmsDlg::m_bIsExsited=1;
    即可以了
    因为静态成员变量如在构造函数中初始化的话,那每次生成该类对象时
    都会初始化该静态成员的!但是静态成员是脱离对象而能存在的它依赖与类而存在。
    如可以在其他文件中可以调用:CSengSmsDlg::m_bIsExsited=10;进行赋值!
    应该说static成员变量有点像全局变量,但它的作用域还类作用域。你可以在main()里面或成员函数外的任何地方初始化。且只能初始化一次。它不属于任何类的对象,它只属于类。也就是说即使没有实例化一个对象,用class name::static member name也能访问它。
      

  7.   

    有可能你把Cmyclass类添加到引用这个静态变量的工程中就可以解决问题,试试看