C++ 添加指针会导致类出错,找不到错误重载的成员函数
我的代码有一些问题。具体而言:C++ 添加指针会导致类出错,找不到错误重载的成员函数,c++,visual-c++,C++,Visual C++,我的代码有一些问题。具体而言: 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; }
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;
}
}
bool客户::结帐(库存*inv){
双倍合计=0;
对于(无符号整数i=0;i<_Cart.size();i++){
总计+=\购物车[i]。价格;//价格*数量??
}
if(客户余额<总计){
返回false;
}
否则{
无符号整数i=0;
对于(i=0;i_inv.size();i++){//检查库存,检查名称,如果有匹配项,
如果(inv->_inv[i].name==_Cart[i].name){//相应地减少数量,如果没有匹配项,
库存->库存[i]。数量-=[库存车[i]。数量;
打破
}
}
如果(i==inv->_inv.size()){//您需要将新食品推入库存向量
库存->库存推回(_Cart[i]);
返回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
class客户{
公众:
客户(字符串n、整数c、双b);
布尔阿德卡特(食品f);
bool removeCart(食品f);
void report();//要执行的操作
bool结帐(库存*库存);//要做
受保护的:
字符串名;
int卡;
双平衡;
//信用卡;
向量车;
};
班级清单{
公众:
向量_Inv;
向量购买;
整数区间;
void firststock(字符串文件名);
void showFirststock(字符串文件名);
作废重新进货(字符串文件,int inter);
void summary();//要执行的操作
我得到的错误如下:
请帮助在定义
客户
之前,您需要向库存
转发声明
class Inventory;
class Customer {
//....
};
class Inventory {
//....
};
关于代码的一些注释:
- 通过
reference传递复杂数据类型-例如-const
而不是bool addCart(const Food&f);
bool addCart(Food f);
- 您使用非限定的
表明您在标题中的某个位置使用了字符串
。这不好,至少在标题中,您不应该使用名称空间std;
指令,而应该完全限定类型-
,它也应该通过引用传递std::string