我正在为将书籍放入购物车的类创建代码,但是,该代码必须包含在类中。一切都很好,除了我的总价格翻了一番。我已经把它列在我的公开课上,但它不认识它。我做错了什么?我必须在其他地方初始化它吗?非常感谢你帮助我。
class ShoppingCart
{
private:
Book* bookArray[100];
int arrayEnd;
public:
void addBook(Book *);
double totalPrice();
ShoppingCart();
};
ShoppingCart::ShoppingCart() {
for (int i = 0; i < 100; i++) {
bookArray[i] = { NULL };
}
arrayEnd = 0;
}
void ShoppingCart::addBook(Book *currentItem) {
bookArray[arrayEnd] = currentItem;
arrayEnd++;
}
double ShoppingCart::totalPrice() {
double totalPrice;
for (int i = 0; i < 100; i++) {
if (bookArray[i] != NULL) {
totalPrice += bookArray[i]->getPrice();
}
else {
break;
}
}
return totalPrice;
}
它已声明,但未初始化,请尝试将其更改为
double ShoppingCart::totalPrice() {
double totalPrice = 0;
for (int i = 0; i < 100; i++) {
...
当你声明一个变量时,它有一个值,恰好是它创建时那个内存位置的值(它基本上没用)。当您使用该变量值时,编译器会抛出警告,因为它认为您不想使用它。如果用 0 覆盖该无用值,则可以使用该变量进行求和。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句