1

クラスを定義しようとしています

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<int,int> nodeそれでも同じエラーが発生します。何か不足していますか?

4

1 に答える 1

4

これは、std名前空間がusing. 型mapはグローバル名前空間にないため、map解決できません。以下を試してください

class BTree {
private:
  std::map<std::string, BTree*> *node;

  ...
};
于 2012-10-19T17:20:39.067 に答える