C++ Object Orientation Background: Have you ever noticed how difficult it is to organize ordering pizza for a large group? • Just to be clear: the answer is ‘yes’. Doesn’t matter if it makes...

1 answer below »
C++ must, not C . dont forget to comment for understanding. read the pdf properly. C++


C++ Object Orientation Background: Have you ever noticed how difficult it is to organize ordering pizza for a large group? • Just to be clear: the answer is ‘yes’. Doesn’t matter if it makes sense; we’re going with ‘yes’ Shelly likes a classic pepperoni and cheese on red sauce. Marshall likes olives and artichokes on white. Gary just likes red and white sauce with nothing else on. We… don’t invite Marshall to our pizza parties anymore. The more people you’re ordering for, the more you have to compromise. e.g. if Allen wants a classic Hawaiian (ham, pineapple, and cherries), and Brenda wants a more local variant (bacon and pineapple), then clearly the solution is to take the intersection of the two: nothing but pineapple! (Yes yes, probably sauce and cheese also, but the point is: pineapple is great and everyone loves it) Pizza: To assist with this, we could devise a new data type: a Pizza. To be clear, a Pizza in this context isn’t the pizza itself, but rather a configuration of toppings. • There are 20 possible toppings (including sauces and cheeses) o The options are all defined in an unscoped enumeration o Each topping is either present, or not (e.g. you can’t get ‘double bacon’) • Since a Pizza is really just ‘one possible configuration’, the type is immutable. If you want a different configuration, simply use one of the included operators to create new derived configuration o e.g. if p1 is [Red sauce | Pepperoni], then p2=p1+OLIVES; means p2 ends up with [Red sauce | Pepperoni | Olives], but p1 remains unchanged Pizza Operators: Operator C++ [returns] Union of toppings present in either pizza A+B [Pizza] Intersection of only toppings common to both pizzas A^B [Pizza] Result of removing toppings defined by a different pizza A-B [Pizza] Result of adding a single topping to the pizza A+b [Pizza] Result of leaving a single topping off the pizza A-b [Pizza] Checking if a pizza’s toppings are contained entirely within another’s A<=b [bool]="" checking="" if="" second="" pizza’s="" topping="" are="" a="" strict="" superset="" of="" this="" one’s="">=B [bool] Checking if a pizza has the same toppings as another, plus at least one more A>B [bool] Checking if two pizzas have identical toppings A==B [bool] Checking if two pizzas are different A!=B [bool] Checking if a pizza has no toppings at all !A [bool] Getting the number of toppings on the pizza A() [int] Checking if a specific topping is present A[t] [bool] Stream insertion (output) O
Answered Same DayOct 27, 2022

Answer To: C++ Object Orientation Background: Have you ever noticed how difficult it is to organize...

Vikas answered on Oct 28 2022
49 Votes
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here