나는 const 메소드 묶음이있는 인터페이스를 가지고있다. 인터페이스 구현 중 하나에서 요청 된 정보를 파일에서 읽어야합니다. 예를 들어 here으로 지적했듯이 파일 핸들이 읽기와 함께 변경되기 때문에 실제로 const 연산이 아닙니다.인터페이스 및 파일 읽기의 const 메소드 구현
1) 모든 요청에 임시 파일 핸들을 사용하여
는 기본적으로 내가 알고 있는데 이것에 대해 갈 세 가지 옵션이 있습니다.
2) PIMPL을 사용하십시오.
3) 파일 핸들에 mutable
을 사용하십시오.
첫 번째 옵션은 분명히 잔인하며 많은 요청으로 많은 오버 헤드가 추가됩니다. 두 번째 옵션은 간접 참조를 추가하지만 꽤 표준적인 솔루션 인 것으로 보입니다. 그러나 세 번째 옵션은 오버 헤드가없고 간접 참조가 없지만 기본적으로 변경 사항을 확인하기위한 것입니다. PIMPL 관용구가 더 복잡하지만 논란의 여지가없는 방식으로 똑같은 일을하지만.
const 정확성을 저해하지 않으면 서 const 메소드에서 파일 읽기를 수행하는 적절한/선호되는 방법은 무엇입니까?
(3) 예 파일 핸들이 객체의 관찰 가능 상태의 일부가 아닌 경우 –
@RichardCritten 그건 까다로운 부분이지. 파일 핸들은 인터페이스의 일부도 아니고 직접 참조 할 수도 있지만 일단 변경할 수 있으면 const 메소드의 파일에 쓰기가 가능하며 (인터페이스의 const 메소드를 통해) 외부에서 관찰 할 수 있습니다. – Resurrection