未定义参考功能错误?

时间:2015-02-26 23:14:26

标签: c++ function reference undefined

我看到其他类似的问题被问到但我无法弄清问题是什么。我在库存类中有一个声明:

class Inventory
{
   Public:
      void print();
      void sell(Item*);
      void add();
      void find(string);
   Private:
      Item* first;
}

然后在inventory.cpp中我有:

 void sell(Item* item_name)
 {
    ..........................
 }

错误来自于在main()中调用它:

Inventory store_inventory;
Item* cur_item;
cout<<"Item name: ";
string name;
cin>>name;
cur_item = find(name); //find returns Item*

store_inventory.sell(cur_item);

错误是销售电话的一行。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

定义需要表明它是Inventory

的成员函数
void Inventory::sell( Item* item_name )
{
    // ...
}

此外,find()功能存在问题。您将其声明为void成员函数,但使用at就好像它是一个返回Item*的自由函数。

答案 1 :(得分:0)

物品是一类吗?

您应该将void类型更改为您要退回的类型item

同样,如果要调用卖出函数,如果要传递相同的指针,则必须使用变量名之前的&,如sell(item* &varname)