我的代码有一些问题。具体来说:
bool Customer::checkout(Inventory* inv) {
double total = 0;
for( unsigned int i=0; i < _Cart.size(); i++ ) {
total += _Cart[i].price; // price * quantity??
}
if( Customer.balance < total ) {
return false;
}
else {
unsigned int i =0;
for ( i =0; i < inv->_Inv.size(); i++) {//go through inventory, check names, if there is a match,
if (inv->_Inv[i].name == _Cart[i].name) { //decrement the quantity accordingly, if there is no match,
inv->_Inv[i].quant -= _Cart[i].quant;
break;
}
}
if( i == inv->_Inv.size() ) { //you need to push the new food into the inventory vector
inv->_Inv.push_back(_Cart[i]);
return true;
}
}
在我的头文件中,我有:
class Customer {
public:
Customer( string n, int c, double b );
bool addCart( Food f );
bool removeCart( Food f );
void report(); //to do
bool checkout(Inventory* inv); //to do
protected:
string name;
int card;
double balance;
//CreditCard _CC;
vector<Food> _Cart;
};
class Inventory {
public:
vector<Food> _Inv;
vector<Food> _Purchases;
int interval;
void firststock( string fileName );
void showFirststock( string fileName);
void restock( string file, int inter );
void summary(); //to do
我得到的错误如下:
- 错误 C2061:语法错误:标识符 'Inventory' 错误 C2061:(关于 bool checkout(Inventory* inv);)
- 语法错误:标识符 'Inventory' bool
- Customer::checkout(Inventory )' : 在 'Customer' 中找不到重载的成员函数,请参阅 'Customer' 的声明 .... (关于 bool Customer::checkout(Inventory inv))
请帮忙