Речь идет не о части распределения памяти. Речь идет о том, чтобы иметь единую точку определения в связанной части компиляции. @Nick также указал на это.
Из веб-сайта Bjarne http://www.stroustrup.com/#in-class
A класс обычно объявляется в файле заголовка, и заголовочный файл обычно включается во многие единицы перевода. Однако, чтобы избежать сложных правил компоновщика, C ++ требует, чтобы каждый объект имел уникальное определение. Это правило будет нарушено, если C ++ допускает определение класса объектов в классе, которое должно храниться в памяти как объекты.
blockquote>