다음 코드가 컴파일되지 않는 이유를 누구나 설명 할 수 있습니까? 적어도 g ++에서 4.2.4.
그리고 더 흥미로운 것은 MEMBER를 int로 캐스팅 할 때 왜 컴파일됩니까?
#include <vector>
class Foo {
public:
static const int MEMBER = 1;
};
int main(){
vector<int> v;
v.push_back( Foo::MEMBER ); // undefined reference to `Foo::MEMBER'
v.push_back( (int) Foo::MEMBER ); // OK
return 0;
}