• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

제휴, 의존관계 강의를 보고 문의 드립니다.

21.08.11 23:58 작성 조회수 103

0

안녕하세요. 교수님께서 구성관계에서 Position 클래스를 만들어서 Monster의 private에 넣어주는 형식을 한개의 파일에서
진행을 하셨습니다.
제휴, 의존 관계를 보고 문의를 드리는건데요.
Position클래스가 cpp,h로 나뉘어져 있고,
Monster클래스도 cpp,h로 나뉘어져 있다면,
Monster클래스가 Position 클래스를 멤버 변수에 사용하기 위해서는 #include 보다는 전방선언으로 하는 것이
컴파일 속도에는 보다 효율적이겠네요?
그리고 Monster cpp에서 Move 함수 동작을 위해서 Position 클래스를 사용하기 위해서는 cpp에다가
Position 의 헤더를 #include 해야 하는 것이 맞죠?
예시로 Date-Monster 파일 만들어서 진행했습니다.
  • main 부

  • monster.cpp

  • monster.h

  • date.cpp

  • date.h

답변 1

답변을 작성해보세요.

0

안소님의 프로필

안소

2021.08.12

안녕하세요 😊

1. "Monster클래스가 Position 클래스를 멤버 변수에 사용하기 위해서는 #include 보다는 전방선언으로 하는 것이 컴파일 속도에는 보다 효율적이겠네요?"

전방 선언이라면, include 할 필요없이 같은 파일내에서 Monster 클래스 위에 Position 클래스 정의한다는 말씀인건가요? 음 아마 코드가 몇 천 줄 몇 만 줄 되는 것이 아닌 이상 속도 면에서 큰 차이는 없을 것 같습니다. 거의 속도 차이가 나지 않는 수준일 것 같네요. 컴파일 속도보단 코드 파일을 관련있는 것들끼리 묶고 따로 분리하여 잘 정리하는게 더 개발에 있어 효율적이라고 봅니다. 사용할 땐 include 쓰구요!

2. "그리고 Monster cpp에서 Move 함수 동작을 위해서 Position 클래스를 사용하기 위해서는 cpp에다가 Position 의 헤더를 #include 해야 하는 것이 맞죠?"

그래도 되긴 하는데요! 이왕이면 include 들은 Monster.h 에다가 놓고 이 Monster.h 하나만 Monster.cpp 에서 include 하는게 더 좋다고 생각합니다. 이러면 Monster.cpp 를 Monster.h 와 짝지어 정리해주는 그런 느낌도 더 강해지니까요. 어차피 Monster.cpp에서 Monster.h 를 하나만 include 해도 include 자체가 전체 코드를 복사 붙여넣기 해주는 과정이기 때문에 Monster.h 에 있는 include 문들이 Monster.cpp 에도 적용되는거나 마찬가지입니다. Monster.h 에 Position 을 include 하고 Monster.cpp 는 Monster.h 만 include 하는 이런 그림이 더 예쁜 코드 설계라고 생각해요!
김원태님의 프로필

김원태

질문자

2021.08.12

답변해주셔서 감사합니다!