Pimpl 관용구 보면서 public 미만은 다 숨기는 기법 보고서 생각난건데
잘하면 멤버 함수도 숨길 수 있고, 상속 구조더라도 써먹을 수 있겠더라고
API화해서 전달하는 일을 많이 하다보니 private 함수나 내부 루틴을 숨기고 전달할 헤더를 깔끔하게 만드는데 좋을것 같아서 생각해 본 것.
스샷같이 구현하는 아이디어 어떻게 생각함?
수행결과는 이럼
m에 대한 깊은 복사까지는 따로 구현 안했는데 필요한 경우 추가해야할 것 같고
건너 호출하는 방식이라 타이핑이 좀 더러운게 단점이지만
외부에 표시할 부분이랑 구현부를 완전 분리해서 헤더 의존도 줄고 유지보수면에선 좀 낫지 않을까 싶은 생각이 드는데
좀 문제될 만한 부분이 있을까?
파일이존나느렁나자너
아니., 그니까 목표가 인텔리센스 등에서 퍼블릭만 노출되게 하는 거임? 좀 더러운데... 차리리 A클래스가 실제 구현된 놈이라면 그걸 포장하는 용도로 B클래스에 A의 인스턴스를 멤버로 넣으면 어떨까 좀 다른가 - dc App
B가 A를 상속받는데 실제 A의 선언부 전체가 필요하니까 헤더를 두개줘야하는 문제가 생기긴 할거야
A의 헤더를 B의 헤더에 넣으면 B헤더 쓸 때 알아서 A헤더도 포함되잖어? - dc App
음 그러니까 impl헤더 말고 그냥 base.h derived.h 만 배포시키는게 목적임. 헤더 내에 딱 필요한 명시만 남기고 구현부는 싹 숨겨버리는거
이 댓글은 게시물 작성자가 삭제하였습니다.