我看到其他类似的问题被问到但我无法弄清问题是什么。我在库存类中有一个声明:
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);
错误是销售电话的一行。有什么想法吗?
答案 0 :(得分:3)
定义需要表明它是Inventory
:
void Inventory::sell( Item* item_name )
{
// ...
}
此外,find()
功能存在问题。您将其声明为void
成员函数,但使用at就好像它是一个返回Item*
的自由函数。
答案 1 :(得分:0)
物品是一类吗?
您应该将void
类型更改为您要退回的类型item
。
同样,如果要调用卖出函数,如果要传递相同的指针,则必须使用变量名之前的&
,如sell(item* &varname)
。