gpt4 book ai didi

c++ - 对静态类成员的 undefined reference

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:46:11 26 4
gpt4 key购买 nike

谁能解释为什么下面的代码不能编译?至少在 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;
}

最佳答案

您需要在某处(在类定义之后)实际定义静态成员。试试这个:

class Foo { /* ... */ };

const int Foo::MEMBER;

int main() { /* ... */ }

那应该摆脱 undefined reference 。

关于c++ - 对静态类成员的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37985147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com