개인 변수는 클래스 사용자에게 복잡성과 구현 세부 사항을 숨기는 방법입니다. 이것은 다소 좋은 기능입니다. 그러나 C ++에서 왜 클래스 헤더에 그것들을 넣어야하는지 이해하지 못합니다. 나는 이것에 대한 두 가지 성가신 단점을 봅니다.
- 사용자의 헤더를 어지럽게 만듭니다.
- 내부를 수정할 때마다 모든 클라이언트 라이브러리를 강제로 다시 컴파일합니다.
이 요구 사항 뒤에 개념적 이유가 있습니까? 컴파일러에서 작업을 용이하게하는 것입니까?
struct foo{};
)은 허용되지 않지만 정방향 선언 ( struct foo;
)은 허용 됩니다.