Разве мы не можем назначить глобальное значение для x
переменной?
Можно. Но вы должны поместить оператор присваивания в функцию. например,
int main()
{
A::x=5;
int x = 30;
std::cout << "x = " << x << std::endl;
std::cout << "A::x = " << A::x << std::endl;
std::cout << "::x = " << ::x << std::endl;
}
Обратите внимание, что A::x=5;
- это оператор , но не определение (с инициализатором), например int x = 20;
, это разные вещи.