https://gpgstudy.com/forum/viewtopic.php?t=23724
https://copynull.tistory.com/190

  • class A와 class B간의 멤버를 참조해야 하는 경우가 있을 경우

    각각을 include를 사용할 경우 컴파일러가 모든 헤더 파일을 훑고 넘어가야 하므로 속도가 저하되는 문제가 있다. 파일이 클수록 오래 걸린다!

    추가적으로 각 헤더 파일이 include 되어있는 상태에서 서로 참조하게 되면
    꼬임 현상에 의해 무한 루프가 발생한다. 이를 상호 참조라고 한다.)

전방선언을 해야하는 이유

  • include 없이도 컴파일 시 다른 클래스를 참조한다는 정보를 제공한다.
    but 클래스 내부는 모른다.
  • include에 비해 전방선언을 이용하면 컴파일 속도를 빠르게 할수 있다.

    하지만 단점아닌 특징으로는 클래스내의 크기를 알 수 없다는 것이다.
    왜냐하면 전방선언은 이러한 클래스가 있다! 라는 정보(귀뜸)만 한것이기 때문이다. 클래스 내부 구성은 모름!
    이로 인해 정적할당과 상속은 불가능하다.
    왜냐하면 컴파일러가 전방 선언한 클래스의 정보를 모르기 때문이다.

실험


-> 알 수 없는 재정의 지정자라는 오류가 나온다.

  • 전방선언을 해보자.

    -> 전방 선언 했는데도? 오류가 나온다?
    왜냐하면 정적할당으로 메모리를 할당하려고 해서 문제가 생긴 것이다.

  • 동적 선언?은 가능하다.

profile
🔥🔥🔥

0개의 댓글