任何人都可以解釋爲什麼下面的代碼不能編譯?至少在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