1

可能重复:
类中的静态成员变量
什么是未定义的引用/未解决的外部符号错误,我该如何解决?

class test_struct {
  static int number;
 public:
  static void set() {
    number = 42;
  }
};

int main() {
  test_struct::set();
}

错误是:

[...]Temp\ccGGxEAz.o:test.cpp:(.text.startup+0xf): undefined reference to `test_struct::number'
collect2.exe: error: ld returned 1 exit status
4

1 回答 1

5

在使用它之前,您需要test_struct::number在源代码(.cpp)中定义静态成员:

class test_struct {
  static int number;
 public:
  static void set() {
    number = 42;
  }
};

int test_struct::number = 0;
于 2013-01-15T22:45:20.997 回答