在MyClass中使用静态std :: map <int,MyClass*>会导致外部符号无法解析

Mar*_*arl 0 c++

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

注意:我是一名经验丰富的Java程序员和新手C++程序员,我也会将其作为一个JNI dll,这就是我需要跟踪实例的原因MyClass.

tro*_*foe 5

您可能没有提供实现:

MyClass.h:

class MyClass {
private:
    static std::map<int, MyClass *> m_instances;
...
};
Run Code Online (Sandbox Code Playgroud)

MyClass.cpp:

#include "MyClass.h"

// Add this
std::map<int, MyClass *> MyClass::m_instances;
Run Code Online (Sandbox Code Playgroud)