未定义的对函数的引用错误

Undefined Reference to Function error?

本文关键字:错误 引用 未定义 函数      更新时间:2023-10-16

我看到有人问我其他类似的问题,但我不知道问题出在哪里。我在库存类中有一个声明:

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

然后在清单.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);

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

定义需要表明它是Inventory:的成员函数

void Inventory::sell( Item* item_name )
{
    // ...
}

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

Item是类吗?

您应该将void类型更改为您希望返回的item类型。

此外,当您调用sell函数时,如果您想在参数处传递相同的指针,则必须在变量名(如sell(item* &varname))之前使用&