0

クラス内でtypedefを実行できませんか?

#include <vector>
using namespace std;
    class List {
    public:
           typedef int Data;
           class iterator;
           pair<iterator,bool> insert(const Data nodeId); //<-error
    private:
    class Node {
        typedef vector<NodeId> DepList;//<-error
    };
    }

エラーが発生しますmissing type specifier - int assumed. Note: C++ does not support default-int

4

2 に答える 2

1

あなたはできる。

エラーはペアと一致していると思います。正しいヘッダーを含めましたか:

#include <utility>

また、またはがない場合はusing namespace std;、だけでなく、usgin std::pair;と書く必要があります。std::pairpair

using namespace std;PS特にヘッダーファイルは使用しないでください。

編集あなたの編集を見ると、あなたも必要です#include <vector>
EDIT2:あなたは定義NodeIdしていませんが、あなたはそれをtypedef

于 2012-10-08T19:22:42.060 に答える
1

これは誤解を招くエラーメッセージです。iterator、もNodeId定義もされていないため、式で使用することはできません。

これで作業できます(イテレータを前方宣言されたクラスへの参照にします): pair<iterator&,bool> insert(const Data nodeId);

NodeIdの前方宣言を追加します。 class NodeId;

次に行います: typedef vector<NodeId&> DepList;

于 2012-10-08T19:32:34.987 に答える