Случай 1: статическая переменная
Как мы все знаем, определение статической переменной внутри класса, которая вызовет ошибку компиляции.Например:
class Stats
{
public:
static int AtkStats[3];
*static int a =20;* // Error: defining a value for static variable
};
int Stats::AtkStats[3] = {10, 0, 0};
Выход:
error: ISO C++ forbids in-class initialization of non-const static member 'Stats::a'
Случай 2: постоянная статическая переменная
Для постоянная статическая переменнаямы можем определить значение либо внутри класса, либо вне класса.
class Stats
{
public:
static const int AtkStats[3];
static const int a =20; // Success: defining a value for a const static
};
const int Stats::AtkStats[3] = {10, 0, 0};
const int Stats::a = 20; // we can define outside also
Вывод:
Compilation success.