【发布时间】:2017-06-04 01:49:18
【问题描述】:
假设我在头文件中定义了一个静态成员,例如:
static QHash<QString,int> flagColorsMap;
如何在 cpp 文件中的构造函数中定义 hashmap。如果我执行以下操作:
Classname::flagColorsMap.insert("xyz",22);
它给出了编译错误 :: undefined reference to Classname::flagColorMap.
【问题讨论】:
-
你初始化
flagColorsMap了吗? -
这是一个链接器错误。尝试在一个且只有一个源文件中添加
QHash<QString,int> Classname::flagColorsMap来定义静态成员,该源文件具有类定义的可见性(例如包含)。 -
你为什么使用类限定符?
-
那么您不知何故误解或误用了我的建议。您随后接受的答案的实质(由于您还说它“不起作用”而对其进行了编辑)是相同的建议,并且编辑只是一个示例。
-
@Peter 我完全同意你的看法。我收回我之前的声明。