Question
C++ Program! You are to complete the GildedRose.h only, main.cpp has to be as instructed and cannoit be changed. You are given a partial implementation
C++ Program!
You are to complete the "GildedRose.h" only, "main.cpp" has to be as instructed and cannoit be changed.
You are given a partial implementation of one header file, GildedRose.h. Item is a class that holds the information for each item for the inn. GildedRose is a class that holds an internal listing of many Item objects. This inventory should hold at least 10 items. For this you can use arrays, the std::array class, or even the vector class.
Complete the implementation of these classes, adding public/private member variables and functions as needed. You should choose an appropriate data structure to maintain this inventory with an unknown size known only at runtime. Your code is tested in the provided main.cpp.
You will need to implement the following functions:
-
Constructors/Destructors - Initialize your data. Allocate memory if using a native array. The destructor should deallocate memory if using a native array.
-
size() - This should return the number of items currently for sale (this is different from the max).
-
get(size_t) - This should return the item with the matching index. For example if given an index of 3, you should return the item at index 3 in the list.
-
add(Item) - This should add another item for sale in the Gilded Rose by adding it to your inventory.
-
operator[](size_t) - This should perform identical to the get(size_t) function.
Initially the given code will not compile. As you complete the code, the tests should start to pass in main.cpp.
-------------------------------------------------------------------------------------------------------------------------------------------------------------
GildedRose.h file
#pragma once
#include
// This is already done for you... class Item { public: string name; int sellIn; int quality; Item(string, int, int); };
Item::Item(string new_name, int new_sellIn, int new_quality) : name(new_name), sellIn(new_sellIn), quality(new_quality) { }
// This class is incomplete... class GildedRose { private: // Add something to hold at least 10 items
public: GildedRose(); ~GildedRose();
size_t size() const; Item& get(size_t); void add(const Item&);
Item& operator[](size_t); }; -------------------------------------------------------------------------------------------------------------------------------------------------------------
main.cpp file
// This file tests your class and makes sure you created the GildedRose correctly #include
const size_t NUM_TESTS = 9; size_t NUM_PASSED = 0;
// Helper Functions template
// Main Testing int main(int argc, char const *argv[]) { GildedRose store; store.add(Item("+5 Dexterity Vest", 10, 20)); store.add(Item("Aged Brie", 2, 0)); store.add(Item("Elixir of the Mongoose", 5, 7)); store.add(Item("Sulfuras, Hand of Ragnaros", 0, 80));
assertEquals("GildedRose.size()", static_cast
store.add(Item("Backstage passes to a TAFKAL80ETC concert", 15, 20)); store.add(Item("Backstage passes to a TAFKAL80ETC concert", 10, 49)); store.add(Item("Backstage passes to a TAFKAL80ETC concert", 5, 49));
assertEquals("GildedRose.size()", static_cast
store.add(Item("Conjured Mana Cake", 3, 6));
assertEquals("GildedRose.size()", static_cast
cout << endl << "Tests passed: " << NUM_PASSED << "/" << NUM_TESTS << endl;
return 0; }
template
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started