static 변수를 어떻게 써야 하나요..?
글쓴이: nayana / 작성시간: 토, 2004/07/17 - 5:10오후
예를 들어서 abc.h 파일에 이런식으로 있다고 하면
class abc { public : abc(); ~abc(); private : static char aaa; }
abc.cpp 파일에
#include <iostream> char abc::aaa = 'x'; abc::abc() { } ...... ......
이런식으로 있을때 nayana.cpp 파일에( nayana.h 파일 생략 )
#include <iostream> ............................... ................................ int nayana( char ccc) { ccc = aaa; }
aaa라는 정적 변수를 사용하려면 어떻게 해야하나요 간단한 예제 부탁 드립니다.
Forums:
c++ 에서 클래스 내의 static 변수는모든 클래스 개체에서 공유
c++ 에서 클래스 내의 static 변수는
모든 클래스 개체에서 공유하는 값에 사용됩니다.
구현관점에서 얘기하자면, this pointer 없이
접근 가능한 값으로 만들고 싶은 경우 static을 사용합니다.
즉, 위의 예에서
printf("%d", abc::aaa ); 와 같은 접근이 가능한 것은 this pointer 없이도 접근가능하기 때문입니다.
static 을 빼면 위 printf 같은 사용은 불가능하죠.
좀더 확장하면, 멤버 함수 앞에 static이 있는 경우에도 this pointer 없이 사용가능합니다. 게다가 이 함수 안에서는 static 으로 제한된것만 접근이 가능하게 됩니다.
구현관점에서 this의 역할을 음미할 수 있게 해주는 것이 static 입니다.
---
http://coolengineer.com
^-^
Static Member Function 을 만들때 자주 생기는 문제이기도 한데
이유를 알고 싶습니다. :P
-----------
청하가 제안하는 소프트웨어 엔지니어로써 재미있게 사는 법
http://sozu.tistory.com
Re: ^-^
static member function은 해당 클래스의 특정 인스턴스와 관련이 없기 때문이죠.. 즉 this 포인터가 없습니다
쉽게 말하면 보통 C에서의 함수라고 생각하시면 됩니다.
사실 위와 같은 질문은 자주 올라오는 것이므로, 답변대신 몇가지 링크를
사실 위와 같은 질문은 자주 올라오는 것이므로, 답변대신 몇가지 링크를 올립니다.
http://bbs.kldp.org/viewtopic.php?t=28565
http://bbs.kldp.org/viewtopic.php?t=28039
http://bbs.kldp.org/viewtopic.php?t=22772
---
http://coolengineer.com
답변 감사드립니다.많은 도움이 되었습니다.
답변 감사드립니다.
많은 도움이 되었습니다.
Re: ^-^
static 변수가 아닌 것은,
인스턴스가 없는 한 사용되기 위한 준비가 되지 않았기 때문에...
https://nicesj.com
https://blog.nicesj.com
댓글 달기