我有以下几点:模板化的外部类的静态成员初始化
// TreeMap.h
template<class K, class V>
class TreeMap {
public:
enum Color {
BLACK,
RED
};
class TreeMapNode {
K& key;
V& value;
Color c;
public:
TreeMapNode(K&,V&);
TreeMapNode(std::pair<K,V>);
K& getKey(void);
V& getValue(void);
Color getColor(void);
void setColor(Color);
};
private:
TreeMapNode* root;
static TreeMapNode nil;
// TreeMap.cpp
template<class K, class V>
TreeMap<K,V>::TreeMapNode* TreeMap<K,V>::nil (NULL);
我似乎无法得到正确初始化静态TreeMap中::零部件的语法。我最终希望TreeMap :: nil成员是一个空的TreeMap :: TreeMapNode(sentinel节点)。
您是否尝试将您的成员声明为“TreeMapNode *”而不是“TreeMapNode”(而不是缺少'*')? –