禁止进行功能定义RetailItem

时间:2018-12-07 17:15:12

标签: c++ class function-declaration

运行编码时出现问题。我有2个单独的文件来创建RetailItem类并创建main。我都在项目中创建。

下面是main.cpp

//main 
#include "retailitem.h"
#include <iostream>
#include <iomanip>

using namespace std;
using std::cout;
void displayItem(RetailItem *, const int);
int main()
{
   const int Item = 3;
   RetailItem ritem[Item] ={ { "Jacket", 12, 59.95 },
                          { "Designer Jeans", 40, 34.95 },
                          { "Shirt", 20, 24.95 } };

   //cout << fixed << setprecision(2);
    void displayItem(RetailItem *ritem, const int Item){

  cout <<"      DESCRIPTION UNITS ON HAND   PRICE";

cout<<"=================================================================\n";

for (int i = 0; i < Item; i++)
{
    cout << setw(12) << ritem[i].getDesc();
    cout << setw(12) << ritem[i].getUnits();
    cout << setw(8) << ritem[i].getPrice();

}

cout << "===================================================================";
}
return 0;

}

还有一个文件retailitem.h

//RetailItem class
#include <string>

using namespace std;

class RetailItem
{
private:
    string description;
    int unitsOnHand;
    double price;

public:
RetailItem(string,int,double);
    void setDesc(string d);
    void setUnits(int u);
    void setPrice(double p);

    string getDesc();
    int getUnits();
    double getPrice();
};
RetailItem::RetailItem(string desc, int units, double cost)
   {
       description = desc;
       unitsOnHand = units;
       price = cost;
   }
void RetailItem::setDesc(string d)
{
description = d;
}
void RetailItem::setUnits(int u)
{
unitsOnHand = u;
}
void RetailItem::setPrice(double p)
{
price = p;
}

string RetailItem::getDesc()
{
return description;
}
int RetailItem::getUnits()
{
return unitsOnHand;
}
double RetailItem::getPrice()
{
return price;
}

编译并运行main时,

  • [错误]不允许在'{'令牌

  • 之前的函数定义
  • [错误]预期在输入末尾为'}'

我不知道要解决什么,该怎么解决?

1 个答案:

答案 0 :(得分:2)

该错误消息无疑包含一个行号,告诉您问题出在哪里。这是描述问题的重要部分。但是在这里碰巧很明显:void displayItem(RetailItem *ritem, const int Item){是函数定义的开始。您不能在另一个函数内定义一个函数。将其移到main之外。