尝试使用结构作为返回类型时出错
Error when trying to use a structure as return type
我是 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()
返回适当的值或更改其签名。
当你定义你的函数时,你的结构还没有定义,因为这只发生在几行后面。因此,请尝试将结构定义放在函数定义之上。或者,更好的是,把它放在头文件中。
首先,尝试在调整大小方法上方定义结构。但这不仅仅是一个错误。
相关文章:
- 如何获取std::result_of函数的返回类型
- 奇怪的结构&GCC&clang(void*返回类型)
- 如何建立使用模板函数的lambda函数的尾部返回类型
- 为什么与常规GCC不同,即使有"学究性错误",MinGW-GCC也能容忍丢失的返回类型
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 特征::矩阵<双精度,1,3> 结构类型函数中的返回类型函数
- 函数作为模板参数,是否对返回类型强制约束
- C++中函数的向量返回类型引发错误
- 检查函数返回类型是否与STL容器类型值相同
- 为什么返回类型中需要typename?C++
- <Windows>为什么 std::thread::native_handle 返回类型为"long long unsigned int"的值,而不是 void*(又名 HANDLE)?
- 警告:在函数返回类型 [-Wignore 限定符] 时忽略类型限定符
- 为什么 c++(g++) 不允许模板返回类型和函数名称之间有空格?
- 为什么返回类型的'const'限定符对标有 __forceinline/内联的函数没有影响?
- 推导 std::vector::back() 的返回类型
- 在 c++ 中将函数返回类型指定为模板参数
- 推导成员函数包装器的返回类型时出错
- 尝试使用结构作为返回类型时出错
- 在C++11中确定泛型返回类型时出错
- 从返回类型为用户定义string类的函数返回std::string时出错