帮我分析一下, 用 C++创建 static 与对象无关的类成员变量, VS2013 的这个问题从哪里来

2017-06-27 10:42:34 +08:00
 northisland

原型大概是这样:

#include<random>
using std::mt19937;
using std::uniform_int_distribution;

class Datum3CH {
 protected:
  static mt19937 rng;  // 就是这里,想做一个与对象无关的类成员变量,所有该类对象用同一个随机数生成器。
}

g++4.9 通过无问题。

vs2013 能通过编译,链接时显示:

error LINK2001: 无法解析的外部符号 public: static class std::mersenne_twister_engin<...> Datum3CH::rng*(?rng@?$Datum3CH@M@@2V?$.....)

大概,变量声明了但没找到定义,是这个问题。。。 但这个原因我搞不定。。。

1175 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/371330

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX