나는 C 배경에서 오는 나의 첫 OOP 프로젝트의 완성에 가깝다. 파일을 여는 기본 클래스에서 사용하는 ifstream 개체와 관련된 디자인 문제가 궁금합니다. 그 후 동일한 클래스를 사용하여 파생 클래스에서 추가 작업을 수행하려고합니다. 보호 된 클래스로만이 멤버를 정의 했으므로 protected 클래스에서 파생 클래스에 접근 할 수 있었고 protected는 캡슐화를 중단했습니다. 좋은 습관을 얻고 싶습니다. 일부 getter 함수를 정의하여 스트림 객체에 대한 참조를 반환해야합니까? ifstream 객체는 복제 가능 아니기 때문에, 그 문제가, 내가 볼 제일 먼저 ...ifstream 멤버를 보호
보다도, 일 Umut 수 있습니다
그것이 당신의 디자인에 필수 인 경우 이 캡슐화를 보존하기위한
Getter는 캡슐화를 훨씬 더 깨고 있습니다 (공개 된 경우) – Drakosha
Thx, Steve, "기본 및 파생 클래스의 I/O 기능을 공개하려면 공개 getter가 필요합니다. 계층 구조 외부의 코드 "가 될 수 있습니다. –
@Drakosha - 그것은 순전히 가치 판단이며, 클래스의 목적에 대해 더 많이 알지 못하면 이것이 나쁜 것임을 확신 할 수 없습니다. –