任何人都可以解释为什么下面的代码不能编译?至少在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;
}
我编辑了这个问题,让代码缩进四个空格而不是使用
。这意味着尖括号不会被解释为HTML。 – 2008-11-07 19:03:01欢呼声:) 10个字符的最小规则有时很讨厌;) – 2008-11-08 12:30:10