C++ - [protected] (feat. Class)

실버타운·2023년 7월 18일

C++

목록 보기
8/10
post-thumbnail

protected

  • protected 키워드 사용 시 외부에서 접근은 불가하지만, 상속받은 자식 class 쪽에서는 접근이 가능하다.

장점
부모 class 의 멤버 변수를 protected 로 선언할 경우 자식 class 에서 해당 멤버 변수로의 진입이 수월하다.

단점
어느 부분에서 문제가 발생했는지 찾아내기 어렵다.
-> 디버깅이 힘들다.
프로젝트의 규모가 커질수록 디버깅에 소요되는 비용이 커질 수 있다.

protected 사용 예시

  • 부모 class 의 멤버 변수는 private 필드에 선언하고,
  • 이 멤버 변수에 접근할 수 있는 함수를 protected 필드에 만들어
  • 자식 class 에서 함수를 통해 부모 class 의 멤버 변수에 접근 하도록 설계한다.

장점
문제 발생 시 디버깅에 소요되는 비용을 줄일 수 있다.

단점
부모 class 의 멤버 변수에 접근하는 함수를 만들고, 해당 함수를 통해서만 접근이 가능하다.
설계 단계에서 많은 비용을 부담해야 하며, 접근이 제한적되어 사용하기 번거롭다.

추가로,

함수를 .h 파일에 구현하면 자동으로 inline 처리되어 함수 호출 비용을 절약할 수 있다.
profile
개발 공부 일지

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

글 잘 봤습니다, 감사합니다.

답글 달기