.h와 .cpp에 두번을 선언하다니요? 둘중에 한군데서만 해주면 되는데요.
변수를 추가할 때마다 extern을 붙이기가 귀찮다면 struct문을 쓰는 방법을 생각해 볼 수 있겠죠.
struct _a {
int x;
int y;
};
위와 같은 구조체를 정의한 공통으로 사용하는 헤더파일을 만들고 a.cpp에
_a az;
라고 선언하고 b.cpp에는 구조를 선언한 헤더파일을 include한 후에
extern _a az;
라고 선언한다면 b.cpp에서 az.x, az.y 와 같이 쓸 수가 있습니다.
전역변수를 더 추가하여야 할 필요가 있을 때에는 struct 구조문 안에 추가만 하시면 됩니다.
struct, union 등은 아주 유용하게 쓰이는 경우가 많은데 처음부터 c++을 배워서 c++만을 사용하는
사람들은 잘 사용을 안하더군요.(모두가 그렇진 않지만 제 주위 사람들 중)
곽성주 님이 쓰신 글 :
: 감사합니다.
:
: extern 방법은 .h와 .cpp에 변수를 두번 선언해 주어야 하더군요
: 그리고 변수마다 매번 extern 을 달아주자니 번거로운데요 .
:
: 매번 a-> 를 다는 방법도 좀 복잡하고요 .
: 전역변수를 가능한 억제하게 하기위한 조치인가...
:
: 또다른 방법은 없나요?
:
: posix.duo 님이 쓰신 글 :
: : 읽어보세요 바로 아래에 있는데...
: :
: : http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=36419
: :
: : 곽성주 님이 쓰신 글 :
: : :
: : : 감사합니다.
: : :
: : : 이번엔 함수가 아니고 전역변수를 선언하려 합니다.
: : : 바로 이놈인데요 ..
: : :
: : : WideString file1;
: : :
: : : 이놈을 Scanner.h 에 전역변수로 선언하려면 어찌해야 하나요?
: : :
: : :
|