Закрытые переменные - это способ скрыть сложность и детали реализации для пользователя класса. Это довольно приятная особенность. Но я не понимаю, почему в C ++ нам нужно поместить их в заголовок класса. Я вижу два досадных недостатка в этом:
- Загромождает заголовок от пользователя
- Вызывает перекомпиляцию всех клиентских библиотек при изменении внутренних компонентов
Есть ли концептуальная причина этого требования? Это только для облегчения работы с компилятором?
struct foo{};
) не разрешен, но есть предварительные объявления ( struct foo;
).