Приватні змінні - це спосіб приховати деталі складності та реалізації для користувача класу. Це досить приємна особливість. Але я не розумію, чому в c ++ нам потрібно помістити їх у заголовок класу. Я бачу два прикрих недоліки цього:
- Це захаращує заголовок від користувача
- Це примушує перекомпіляцію всіх бібліотек клієнтів, коли внутрішні модифікації змінені
Чи існує концептуальна причина цієї вимоги? Це лише полегшити роботу компілятора?
struct foo{};
) не дозволений, але попередні декларації ( struct foo;
) є.