태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.


댓글 하나가 운영자에겐 커다란 힘이 됩니다!

위에 것을 컴파일을 하면 아래와 같이 Compiling... static_in_class.cpp Linking... static_in_class.obj : error LNK2001: unresolved external symbol "public: static int test::static_total" (?static_total@test@@2HA) Debug/static_in_class.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe. static_in_class.exe - 2 error(s), 0 warning(s) 애러가 발생합니다..

[답변]
static 멤버변수는 특정 클래스에서만 접근 가능한 전역 변수와 같은 것으로 클래스레벨에서 선언두어도 클래스 인스턴스를 만들때 메모리 공간을 할당하지 않습니다.

따라서 일반 클래스 멤버와는 다른, 외부 정의를 필요로 합니다.

다음의 라인을 적절한 .cpp 파일에 추가하면 문제는 해결됩니다.

int test::static_total = 0;

위의 정보가 도움이 되셨나요? 그렇다면 댓글 하나만 남겨주세요.
댓글 하나가 운영자에겐 커다란 힘이 됩니다!

  1. 동숙이

    | 2009/08/12 10:53 | PERMALINK | EDIT | REPLY |

    static 멤버변수는 특정 클래스에서만 접근 가능한 전역 변수와 같은 것으로
    - 이렇게 되어 있는데요..특정클래스만 접근가능하진 않죠.. 어떠한 클래스에서 모두 접근가능합니다.

  2. alex

    | 2009/09/14 16:02 | PERMALINK | EDIT | REPLY |

    클래스 내에 위치하고, 쓰는건 test::static_total; 처럼 어디서나 가져다 쓸 수 있죠.

Write your message and submit
« PREV : 1 : ... 27 : 28 : 29 : 30 : 31 : 32 : 33 : 34 : 35 : ... 431 : NEXT »