0

以下是我的 index.h 类

class index
{

struct node {
        string item;
        int counter;
        vector<int> pageNumber;
    };

public:
    node* newNode (string word);
    ...

private:
    vector<node*> indexStructure;
    int lineCounter;
    int indexSize;

};

在我的 index.cpp 类中,我有一个方法定义如下:

node* index::newNode (string word)
{
    node* temp = new node();
    temp.item = word;
    temp.counter = 1;
    temp.pageNumber = new vector <int> (10, -1);
    temp.pageNumber[0] = lineCounter / 40;
    return temp;

}

当我编译时,它告诉我“节点没有命名类型”,即使它是在 index.h 的结构中定义的,并且我的私有向量变量可以具有节点 * 类型。

4

2 回答 2

7

node是一个嵌套类index,因此它index::node在全局命名空间中被调用。

请注意,您可以index::在函数体中省略 from,因此只需index::node在 cpp 文件的签名中说明,因为它位于“全局命名空间”内。

于 2012-09-28T00:41:11.267 回答
2

将其更改为index::node* index::newNode(string word). 直到函数名称结束后才确定以您尝试的方式执行此操作所需的范围。

于 2012-09-28T00:40:57.390 回答