Почему неконстантные, не-int / enum статические члены-данные должны инициализироваться вне определения?

Я понимаю, что только члены-члены, которые являются статическими, const и int / enum (pre c ++ 11), могут быть инициализированы внутри объявления класса. "Все остальные члены статических данных должны быть определены в глобальной области пространства имен (т.е. вне тела определения класса) и могут быть только инициализированы в этих определениях ".

Почему можноt другие статические члены данных должны быть инициализированы в определении класса? Была ли конкретная причина, по которой это было запрещено?

Если члены данных относятся к классу, почему они объявлены в глобальной области имен, а не в какой-то области, относящейся к их классу? "

Ответы на вопрос(5)

Ваш ответ на вопрос