static
является правильным ключевым словом здесь:
class A {
public:
static int i; // <-- this is a class variable
};
class B {
public:
void f() { A::i = 3; } // <-- this is how you access class variables
};
Единственная потенциальная проблема, о которой я могу думать, это то, что
- Вы сделали переменную класса
protected
или private
, что делает его недоступным из другого кода. - Вы забыли указать полную область видимости переменной класса (с
A::
в этом примере).