Originally Posted by
Elysia
For diamond store, are you sure you want to separate all different products? In the future, if you decide to add more products, you have to add more state, which increases memory and add new functions. Or you could just use the fact that they all are products and have only one adder, getter, possibly finder and deleter.
Also since you store books (which can be comic books), you really need polymorphism here, so std::vector<Book> should be std::vector<std::unique_ptr<Book>>.