0

我在 foo.h 中有一个包含静态成员的类

class foo {
 public:
  static vector<int> a;
  static void Init() { // Init a }
}

一切正常,直到我有一个正在测试类 foo 的测试文件 foo_test.cpp。但是在测试文件中,静态成员 a 不可见,因为静态成员只可见......我该如何解决这个问题?

谢谢

4

2 回答 2

3

您需要定义a,在您的cpp文件中添加如下行:

vector<int> foo::a;

编辑:更改数据类型以反映问题中的编辑

于 2012-12-14T02:19:21.217 回答
0

如果你在作用域外调用 foo::Init() ,你会得到函数重新声明错误。如果你把它放在范围内,你会得到未解析的外部符号。您只能将其初始化为 int foo::a = 0;

于 2012-12-14T02:39:18.547 回答