static
внутри class
означает, что рассматриваемый член или метод не работает с объектом, т. Е. Он не определяет this
, но все еще находится в пространстве имен класса.
static
вне класса означает, что это означает в C: переменная или функция не имеет внешней связи, то есть вещи вне текущей единицы компиляции не могут ссылаться на нее.
Две совершенно разные вещи.