[완료]cpp 공부중인데.. 도움좀 주세요.. 알고나면 간단할듯 한데.. 몰라서 너무 막막합니다...
글쓴이: xaeuiox / 작성시간: 목, 2008/12/18 - 1:37오전
안녕하세요
문제가 있는데,
공부가 부족한 터라 해결방법을 찾기가 난감합니다. 잘 못 찾겠습니다.
가벼운 귀뜸 좀 주십시요.
A.h 파일는 extend( ) 함수가 정의 되어있고, B.h 파일에는 class Tree{ } 가 정의 되어있습니다. B.h 파일에는 #include “A.h“ 이 정의되어있습니다. class Tree의 메서드 중 일부가 extend( ) 함수를 사용합니다. ( 내용은 중요한 것이 아닙니다. ) 여기서 문제는, ( 하고자 하는 바는 ) extend( ) 함수가 사용될 때 에 Tree의 오브젝트의 주소를 전달하여 tree의 멤버를 참조하고 싶습니다. 저의 발상이 무었이 문제입니까? 언뜻 생각하기에는 private 가 문제가 될 것 같습니다. 가벼운 생각으로 extend( ) 의 전달인자로 Tree * current 를 포함시켰는데 void extend ( Tree * current ) Tree가 정의가 안 돼서 안 된다고 하네요.. ( 저의 수준을 알만하죠.. ㅡㅡ;; 브끄.. ) 어떻게 해결할 수 있는 것인가요..? 무엇을 공부해야 하는 것입니까?? <- 이게 가장문제 입니다.
Forums:
Circular dependency
Circular dependency problem?
http://en.wikipedia.org/wiki/Circular_dependency
삽질의 대마왕...
삽질의 대마왕...
현재 구조를 유지한 상태에서 방법을 찾아야 하나요?
컴파일 에러가 나는 것은 당연합니다.
extend() 가 Tree Class를 모르고 있으니 에러가 나는 것입니다.
사용하실려면 당연히 include 해주셔야 하는데
이렇게 되면 서로 Dependency 가 생기게 되니 그리 좋은 모양은 아닌듯 합니다.
그래도 해야한다면 extend() 함수 구현부에서 Tree Class 헤더 파일을 참조해 주시고
Tree Class 멤버 함수에서 extend 함수 호출 시 this 포인터를 넘겨주세요.
/***************************************************
* 가장 심플한 것이 가장 아름다운 것이다.
***************************************************/
/***************************************************
* 가장 심플한 것이 가장 아름다운 것이다.
***************************************************/
가능하다면 현재 구조를 유지하고 싶습니다.
감사합니다.
링크걸어 준것을 보다가 알았습니다.
A.h 파일에다가
extend() 의 원형 앞에 ..
class Tree;
라고 써주니 활용할 수가 있군요..
extend()의 소스가 들어있는 A.cpp 화일 안에
#include "B.h" 를 추가하니 되는 군요..
감사합니다.. 역시 간단한 것이 었군요.. 공부부족... ㅋㅋ 노력하겠습니다.
댓글 달기