尝试使用结构作为返回类型时出错

Error when trying to use a structure as return type

本文关键字:返回类型 出错 结构      更新时间:2023-10-16

我是 c++ 的初学者。我正在尝试创建一个可以调整当前结构数组大小的函数。在我收到此错误的一半时,我收到了此错误"'myStruct'没有命名类型"和"'resizeArray'未在此范围内声明"。

myStruct resizeArray(myStruct * f, int * sizeOfArray);
myStruct resizeArray(myStruct * f, int * sizeOfArray)
{
    *sizeOfArray *=2;
    //things to be added
}
struct myStruct{
    string Name;
    int days;
};
int main()
{
    struct myStruct f;
    int value = 0;
    int sizeOfArray =10;
    int number_of_friends =0;
    myStruct * ptr = new myStruct [sizeOfArray];
    while(value > 0)
    {
        cout << "Enter your friends Name " << endl;
        cin >> f.Name;
        cout << "How long you know him " << endl;
        cin >> f.days;
        cout << "Do you still wanna continue ? 0 for exit , any number to continue" << endl;
        cin >> value;
    }
    resizeArray(ptr,&sizeOfArray);
    if(sizeOfArray == number_of_friends)
    {
    }
    ptr[number_of_friends] = f;
    number_of_friends++;
    return 0;
}

计算机是合乎逻辑的东西。他们按顺序从头到尾做事。他们不会跳来跳去,而是沿着直线移动。

计算机在读取源文件时看到的第一件事是:

myStruct resizeArray(myStruct * f, int * sizeOfArray);

可怜的电脑不知道你在说什么。它对这个叫做myStruct的神秘实体一无所知。它不知道它来自哪里。它刚刚开始读取这个文件,对其中的内容一无所知。

所以你可怜的电脑大声抱怨它。

在使用计算机之前,请通过声明和定义struct来帮助您的计算机。您的计算机会为此感谢您。

a) 在定义结构之前尝试使用它

b)你说你要返回一个结构,但后来没有。

移动这个:

struct myStruct{
    string Name;
    int days;
};

resizeArray() 之前,则使resizeArray()返回适当的值或更改其签名。

当你定义你的函数时,你的结构还没有定义,因为这只发生在几行后面。因此,请尝试将结构定义放在函数定义之上。或者,更好的是,把它放在头文件中。

首先,尝试在调整大小方法上方定义结构。但这不仅仅是一个错误。