닷넷에서 프로젝트를 진행중입니다. Aa라는 클래스를 정의하고 있는 Aa.h 가 있구요, Bb 클래스를 정의하고 있는 Bb.h가 있습니다.
Aa.h에서 Bb클래스를 사용하기 위해 Bb.h를 include합니다. 그리고 Bb.h에서 Aa 클래스를 사용하기 위해 Aa.h를 include합니다.
이런 경우 컴파일시 서로간에 사용하는 클래스의 식별자를 찾을 수 없다는 에러를 발생시키더군요.(다른 문제 때문일수도 -0-;;)

1. 위의 경우 해결책은 어떤게 있을까요?

2. 그리고 위의 경우에서 헤더파일를 include하지 않고 다른 파일에 있는 클래스를 사용할 수 있는 방법이 있나요?
즉, Aa.h에서 Bb.h를 include 하지 않고 Bb 클래스를 사용할 수 있냐는 거죠.

3. 이건 관련 없는건데 추가적인 질문요;; 어떤 클래스의 멤버함수에서 다른 함수를 호출시 this라는 것을 입력하면 어떤 타입으로 받아야 하나요?? 예를 들어 Aa 클래스의 멤버함수에서 호출시 this를 입력했을 때, Aa temp라고 해야 하나요 아니면 Aa *temp라고 해야 하나요?

읽어주셔서 감사합니다. 답변 부탁드릴게요 (__)


ps. 각 각의 헤더파일에서 클래스를 사용하는 이유는 그 클래스의 변수를 멤버로 하기 위함입니다.