C++ 中未定义的结构类型

undefined struct type in c++

本文关键字:结构 类型 未定义 C++      更新时间:2023-10-16

以下是我的索引.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;
};

在我的索引中.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 的结构中定义的,并且我的私有向量变量可以具有类型 node*。

nodeindex中的嵌套类,因此在全局命名空间中称为index::node

请注意,您可以从函数体中省略index::,因此只需在 cpp 文件的签名中说出index::node,因为这在"全局命名空间"中。

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