【问题标题】:Using a static std::map<int,MyClass*> inside MyClass causes unresolve external symbol [duplicate]在 MyClass 中使用静态 std::map<int,MyClass*> 会导致无法解析的外部符号 [重复]
【发布时间】:2013-07-20 21:50:55
【问题描述】:

我想跟踪MyClass 的实例,所以我在MyClass 中添加了一个私有静态变量std::map&lt;int,MyClass*&gt;。现在的问题是它导致无法解析的外部符号,我不知道如何调试。我该如何解决这个问题?

注意:我是一名经验丰富的 Java 程序员和新手 C++ 程序员,而且我将把它用作 JNI dll,这就是为什么我需要跟踪 MyClass 的实例。

【问题讨论】:

  • 没有必要评论你的笔记。别担心,它会编译的;)

标签: c++


【解决方案1】:

您可能还没有提供实现:

MyClass.h:

class MyClass {
private:
    static std::map<int, MyClass *> m_instances;
...
};

MyClass.cpp:

#include "MyClass.h"

// Add this
std::map<int, MyClass *> MyClass::m_instances;

【讨论】:

  • 无法在 6 分钟内接受答复。 :P 这是正确的答案。感谢您提供。
猜你喜欢
  • 2015-05-13
  • 1970-01-01
  • 1970-01-01
  • 2015-12-17
  • 1970-01-01
  • 2015-05-01
  • 2010-12-03
  • 2021-01-26
  • 1970-01-01
相关资源
最近更新 更多