我正在尝试定义一个类
class BTree
{
private:
map<std::string,BTree*> *node;
public:
BTree(void);
~BTree(void);
void Insert(BTree *);
};
在编译代码时,编译器给我一个错误
error C2899: typename cannot be used outside a template declaration
error C2143: syntax error : missing ';' before '<'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2238: unexpected token(s) preceding ';'
error C2899: typename cannot be used outside a template declaration
我试图将 map 更改为
map<int,int> node
之类的简单内容,但仍给我相同的错误。我想念什么吗? 最佳答案
这可能是因为您没有在std
中列出using
命名空间。 map
类型不在全局 namespace 中,因此map
无法解析。尝试以下
class BTree {
private:
std::map<std::string, BTree*> *node;
...
};