c++ static 멤버를 정의할때.
글쓴이: jee89 / 작성시간: 일, 2003/04/13 - 2:53오후
클래스내에서 선언된 static멤버 변수(함수)를
클래스밖에서 정의할때 ,
다시 static을 붙이면 안되는 이유가 뭔지요?
class CBase
{
static int count;
public
static int getCount();
};
// 정의
int CBasecount = 0; // static int CBasecount = 0; ->에러!
int CBasegetCount() // static int CBasegetCount() ->에러!
{
return count;
}
Forums:
Re: c++ static 멤버를 정의할때.
그건 '나는 너를 사랑해'를 왜 '나는 너를 사랑해'라고 말 하는 지
묻는 것과 비슷해보이는데요. -_-
간단히 말하자면, C++ 문법이 그렇습니다.
그리고, 나름대로 이유를 생각해보자면, 클래스 멤버가 아닌
static 변수나 함수와 그 의미가 차이가 있기 때문에 정의하는
부분에서 그것을 구별시키도록 한 것이 아닌가 개인적으로 예상해 봅니다.
Orion Project : http://orionids.org
스태틱은 1번 선언되죠...
함수는 어떨지 딱 생각은 안나는데 변수의 경우 명백합니다.
static경우 선언되는 자리에서만 스태틱을 달죠.
예를 들어 main에서 호출된 f()라는 함수에서
void f(void)
{
static int k =0;
k++;
cout <<k << endl;
}
이라고 하면 f가 처음 호출될때만
static int k=0 ; 이라는 행이 실행됩니다.
f가 그이후 호출되면 k++부터 실행 됩니다.
static 스태틱 키워드가 사용된 함수도 같은 맥락에서 그렇다고 생각되는데
함수는 조금 생각이 복잡하군요.
그러고보니 C문법이네요.
[/code]
Do you think that's the air you are breathing now?
댓글 달기