我在自己写得类里定义了一个静态变量例如
class Cmyclass{
public:
static int computer;
我在其他地方调用这个变量例如
Cmyclass::computer
但是编译过程中出现错误
myclass.obj : error LNK2001: unresolved external symbol "public: Cmyclass::computer" (?computer@myclass@@2@@A)
class Cmyclass{
public:
static int computer;
我在其他地方调用这个变量例如
Cmyclass::computer
但是编译过程中出现错误
myclass.obj : error LNK2001: unresolved external symbol "public: Cmyclass::computer" (?computer@myclass@@2@@A)
{
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.
int Cmyclass::computer = 0;
应该在该类的.cpp文件中初始化
如:int CSendSmsDlg::m_bIsExsited=1;
即可以了
因为静态成员变量如在构造函数中初始化的话,那每次生成该类对象时
都会初始化该静态成员的!但是静态成员是脱离对象而能存在的它依赖与类而存在。
如可以在其他文件中可以调用:CSengSmsDlg::m_bIsExsited=10;进行赋值!
应该说static成员变量有点像全局变量,但它的作用域还类作用域。你可以在main()里面或成员函数外的任何地方初始化。且只能初始化一次。它不属于任何类的对象,它只属于类。也就是说即使没有实例化一个对象,用class name::static member name也能访问它。