Create a program that uses a vector of food pointers to


Assignment

Instructions

This assignment is to implement your own mini grocery store in C++. Suppose you have the following Food hierarchy:

FOOD

FRUIT

APPLE

BANANA

GRAPE

DAIRY

MILK

YOGURT

CHEESE

(your choice)

(three items, also your choice)

Create a program that uses a vector of Food pointers to objects of each concrete class in the hierarchy. The program should print the object to which each vector element points. This program is mostly implemented for you, and is linked below.

The Food class declares and defines the following member functions. Note that the last function (print) is declared virtually. It will be up to the concrete classes (e.g., Apple) to implement the virtual print function.

getPrice: Should return the price of the item, in dollars, as a float (e.g., 1.24).

isOrganic: Should return a boolean value whether or not the food is organic (i.e., true for "is organic" and false for "is not organic").

print: Should output the food's name, price, and other properties as applicable.

Each direct sub-class of the Food class should also have a property common to its group.

Fruit: isSeedless (returns a boolean whether the fruit is seedless or not)

Dairy: isPasteurized (returns a boolean whether the dairy is pasteurized)

: (again, your choice)

The highest level of the hierarchy, the base-class Food, is implemented for you and is linked here. No further changes for Food.cpp and Food.h are needed for this assignment.

Food.cpp

// Member and friend definitions for class Food
#include "Food.h"

// constructors
Food::Food( float _in_price, bool _in_organic )
{
_price = _in_price;
_organic = _in_organic;
}

// returns item price in dollars
float Food::getPrice() const
{
return _price;
}

// returns true if the item is organic
bool Food::isOrganic() const
{
return _organic;
}

// overloaded output operator
ostream & operator<<( ostream &out, Food &s )
{
s.print();
return out;
}

Food.h

// Definition of base-class Food #ifndef FOOD_H #define FOOD_H #include #include using namespace std; class Food { friend ostream & operator<<( ostream &, Food & ); public: Food(float = 0.0, bool = false); // default constructor float getPrice() const; // returns item price in dollars bool isOrganic() const; // returns true if the item is organic virtual void print() const = 0; // output Food object protected: float _price; // price of the item, in dollars bool _organic; // true if organic, false otherwise }; // end class Food #endif

Solution Preview :

Prepared by a verified Expert
C/C++ Programming: Create a program that uses a vector of food pointers to
Reference No:- TGS01673106

Now Priced at $40 (50% Discount)

Recommended (94%)

Rated (4.6/5)