C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[72869] Re:[질문] Class의 static member 변수의 Link error .. 어떻게?
정적 [] 4115 읽음    2015-07-15 16:47
static 멤버변수의 경우 아래처럼 전역공간에 추가적으로 선언 해줘야 한다네요.

bool TA::m_bInit = false;

참조
http://blog.naver.com/yk382/220354383603





돌매 님이 쓰신 글 :
: 동일 클래스의 오브젝트를 여러 개 생성할 일이 있어서 아래와 같이 코딩했는데요..
: 어느 오브젝트에서 Init하든 모든 오브젝트에서 Init 효과를 주기 위해서 static 변수로 Init 여부를 판별할 수 있도록 하였습니다.
: 그런데, link error가 발생합니다. 왜 일까요?
:
:
: class TA {
: private:
: 	static bool m_bInit;    // 이 놈이 문제임다. 
: public:
: 	TA() { m_bInit= false; }
: 	void Init() { m_bInit= true; }
: 	bool IsInitOk() { return m_bInit; }
: };
: 

:
: 실제 코드에서는 이렇게 사용하려 합니다.
:
:
: TA a,b,c
: a.Init();
: ...
: if ( b.IsInitOk() ) { 
:     // do Something.. 
: } else {
:     // ...
: }
: 

:
:

: [ilink32 Error] Error: Unresolved external 'TA::m_bInit' referenced from D:\....
: [ilink32 Error] Error: Unable to perform link

:
: 즉, Object a가 Init했지만 모든 Object가 Init한 효과를 가지기 위해 static 변수를 두었는데.. Link Error라니...
: 어떻게 해결해야 할 지요?
:
:

+ -

관련 글 리스트
72868 [질문] Class의 static member 변수의 Link error .. 어떻게? 돌매 3747 2015/07/15
72869     Re:[질문] Class의 static member 변수의 Link error .. 어떻게? 정적 4115 2015/07/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.