C ++中的错误C2280

时间:2013-11-18 01:03:13

标签: c++ visual-studio-2013

我正在编写此代码,由于某种原因,我收到错误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 
    }

}

1 个答案:

答案 0 :(得分:0)

void getData(ifstream in&, menuItemType menuList[]);

正确的传递引用语法应为:

void getData(ifstream &in, menuItemType menuList[]);
//                    ^^^

此外,数组menuList只有8个元素,因此访问menuList[8]是非法的,因为数组索引从C ++中的0开始。