: 전방 선언하지 않았다고 에러가 발생하지만, 빨간 줄이 안뜬다.
비주얼에서는 문제가 없지만, 컴파일러 입장에서는 에러라고 하는 것이다.
컴파일러는 컴파일러고 비주얼은 비주얼이다. 따로따로임!
-> 클래스간의 서로를 참조해야 하므로 전방선언을 해야한다.
전방선언을 사용용도에 맞게 적절하게 사용하자.
어느 한쪽이 주인이 아닌 동등한 관계이다.
-> 클래스에 접근은 가능하게 되었지만, 전방선언에 의해 오류가 발생햇다.
왜냐하면 전방선언은 그냥 이러한 클래스가 있다라는 것을 뜻하는 것이다.
Doctor 클래스 안에 mName이라는 변수가 있는지, Doctor 클래스의 크기가 얼마인지 알 수 없다.
이때 우리가 해결할 수 있는 방법은 함수 정의를 외부로 빼는 것이다.
정의부는 외부로 빼고,
클래스에는 선언만 하자.
클래스간 참조를 하면서, 멤버에 접근하려고 할때는
위의 예처럼,
- 전방 선언도 하고,
- friend 화하고
- 일부 함수를 외부로 빼야하는 경우도 있다.