2011-10-26 6 views
5
//foo.h 
class Foo 
    { 
    private: 
     static int number; 

    public: 
     static int bar(); 
    }; 

//foo.cc 
#include "foo.h" 

int Foo::bar() 
{ 
    return Foo::number; 
} 

이 기능이 작동하지 않습니다. 클래스 정의 외부에 정적 함수를 정의하고 정적 값에 액세스하려고합니다.클래스 외부에서 정적 함수를 정의하고 정적 값 .h 및 .cc 파일에 액세스합니다.

undefined reference to `Foo::number' 
+0

이 정적 값이 정의되지 않았다

int Foo::number = 0; 

은 좋은 읽을 수 있어야합니다. foo.cc에'int Foo :: number;'를 추가하십시오. –

답변

1

당신은 Foo :: number를 선언했습니다. 정의를 추가해야합니다. 귀하의 cpp 파일에이 라인을 추가하십시오

int Foo::number = 0; 
2

당신이 Foo::number을 정의 할 수 있습니다 :

// foo.cc 
... 
int Foo::number(0); 
관련 문제