Я получаю ошибку компиляции «не может преобразовать« Чипы »в« GroceryItem », и мне трудно понять, как фактически преобразовать что-то в объект виртуального класса. Учитель предоставил класс GroceryCart, который добавляет GroceryItems к телеге в «основной» и печатает телегу из.Виртуальный класс и наследование
class GroceryItem {
public:
virtual ~GroceryItem();
virtual float GetPrice() = 0;
virtual char* GetDescription() = 0;
virtual float GetWeight() = 0;
};
#include "GroceryItem.h"
class Chips : public GroceryItem {
public:
Chips();
~Chips();
float GetPrice();
char* GetDescription();
float GetWeight();
private:
float price;
char* itemName;
float weight;
};
#include "GroceryItem.h"
#include "Chips.h"
Chips::Chips() {
price = 0.75;
itemName = new char[5];
itemName = "Chips";
weight = 1.0;
}
Chips::~Chips() {
delete this;
}
float Chips::GetPrice() {
return price;
}
char* Chips::GetDescription() {
return itemName;
}
float Chips::GetWeight() {
return weight;
}
int main(int argc, const char * argv[])
{
GroceryCart c;
c.AddItemToCart(new Chips);
std::cout << c;
return 0;
}
void GroceryCart::AddItemToCart(GroceryItem *i)
{
items.push_back(i);
}
Можете ли вы показать метод GuggeryCart 'AddItemToCart'? – MtRoad
в самом низу – Bobby
Вы должны пометить язык в вопросе. – mattsap