我正在编写此代码,由于某种原因,我收到错误C2280说我正在尝试引用已删除的函数。不知道这意味着什么。此外,每当我尝试使用&符号进行引用时,它一直说它需要一个“)”然后它不允许我通过menuList[]
所以它说它未定义且getData()
有太多参数。有关正在发生的事情的任何线索?目前正在运行VS 13
#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>
#include <cstdlib>
using namespace std;
struct menuItemType
{
string ItemName;
double ItemPrice;
};
void getData(ifstream in&, menuItemType menuList[]); \\ doesn't let me pass in here
void showMenu();
void printCheck();
int main()
{
menuItemType menuList[8];
menuList[8].ItemName;
menuList[8].ItemPrice;
ifstream in;
in.open("Menu.txt");
getData(in,menuList); \\ states that it has too many arguments
return 0;
}
void getData(ifstream in&, menuItemType menuList[])
{
int i = 0;
while (!in.eof())
{
in >> menuList[i].ItemName >> menuList[i].ItemPrice; \\ this is where menuList is undefined
}
}
答案 0 :(得分:0)
void getData(ifstream in&, menuItemType menuList[]);
正确的传递引用语法应为:
void getData(ifstream &in, menuItemType menuList[]);
// ^^^
此外,数组menuList
只有8个元素,因此访问menuList[8]
是非法的,因为数组索引从C ++中的0
开始。