类中的typedef

时间:2012-10-08 19:20:13

标签: c++ typedef

我不能在课堂上执行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

2 个答案:

答案 0 :(得分:1)

你可以。

我猜这个错误与该对一致。你有没有包括正确的标题:

#include <utility>

此外,如果您没有using namespace std;usgin std::pair;,则需要撰写std::pair,而不只是pair

P.S。请不要使用using namespace std;,尤其是头文件。

编辑查看您的修改,您也需要#include <vector> EDIT2 :您尚未定义NodeId,但已将其用于typedef

答案 1 :(得分:1)

这是一个误导性的错误消息。 iteratorNodeId都未定义,因此无法在表达式中使用。

你可以使用它(使迭代器成为对前向声明的类的引用):       pair<iterator&,bool> insert(const Data nodeId);

并为NodeId添加前向声明:       class NodeId;

然后做:  typedef vector<NodeId&> DepList;