如何:继承类中的静态变量

nXq*_*Xqd -1 c++

class B {
 public:
   static int a;
};
class C:B {
};
Run Code Online (Sandbox Code Playgroud)

我想通过任何继承的类使用变量,但是当我声明一个时它有问题.

B::B() {
  a=1;
};
Run Code Online (Sandbox Code Playgroud)

我做得对吗?
感谢您阅读并等待您的意见.

//我想念分号,这不是我说的错误.//当我尝试delcare类GameState {public:static int a = 1; // ...};

Error   7   error C2864: 'CGameState::a' : only static const integral data members can be initialized within a class    d:\my dropbox\work\#today\gdimario\gdimario\gamestate.h 18
Run Code Online (Sandbox Code Playgroud)

我尝试写一个简单的问题,显示我想要的问题,而不是粘贴我的整个代码.

Bri*_*ndy 5

您可以像使用派生类和基类一样直接使用它.

也许你的错误是你的类声明结束时没有分号?

class B {
 public:
   static int a;
};

class C:B {
};
Run Code Online (Sandbox Code Playgroud)

如果你想从C的实例调用它,那么你需要使用公共继承:(如果没有指定任何私有继承)

class C : public B {
};
Run Code Online (Sandbox Code Playgroud)

要初始化你需要这样做(通常在相应的.CPP文件的顶部):

int B::a = 3;
Run Code Online (Sandbox Code Playgroud)