|
초학자 님이 쓰신 글 :
: 콘솔 프로그램밍.
: a.h 에서 class aa를 선언 했어요.
: 그리고 a.cpp 에서 인스턴스를 만들고 그것을 b.cpp 에서도 사용하려면 어떻게 해야 되나요.
: 고마워요.^^
임펠리테리입니다.
C++에서 클래스는 타입이고 클래스의 인스턴스는 그 타입의 변수라는 것을 상기하시기 바랍니다. 일반적인 전역변수를 다른 모듈에서 억세스하기 위해서는 extern 키워드를 사용하면 됩니다. 이때 클래스의 인스턴스(타입이 아닌 실제 변수)는 헤더파일에서 만들어서는 안됩니다.
먼저 클래스의 선언은 헤더에 하고, cpp파일에서 전역변수를 만듭니다. 또 헤더에 그 변수의 extern 선언을 합니다.
// a.h에서
class aa
{
...
};
extern aa value;
// a.cpp에서
aa value;
...
그리고 b.cpp에서 그 헤더를 인클루드하고 다시 extern 선언을 하면 됩니다.
// b.h에서
extern aa value;
빌더에서 자동으로 만들어주는 기본 프레임워크(프로그램 뼉다구)를 살펴보면, 빌더에서도 폼 객체를 이와 같은 방법으로 extern 선언을 하여 다른 폼에서 사용할 수 있도록 해주는 것을 알 수 있습니다.
그럼 참고하시길...
|