1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #include <iostream> class Fruit{ public: virtual float totalCostPrice() const = 0; virtual float totalSellPrice() const = 0; virtual float netProfit() const = 0; }; class Fruit_PI : virtual public Fruit { protected: int m_inventory; public: Fruit_PI( int num) : m_inventory(num) {} virtual float netProfit() const { return totalSellPrice() - totalCostPrice(); } }; class Apple : virtual public Fruit, private Fruit_PI { private: float m_unitCostPrice; float m_unitSellPrice; public: Apple(int num, float unitCostPrice, float unitSellPrice) : Fruit_PI(num), m_unitCostPrice(unitCostPrice), m_unitSellPrice(unitSellPrice) {} virtual float totalCostPrice() const { return m_inventory * m_unitCostPrice; } virtual float totalSellPrice() const { return m_inventory * m_unitSellPrice;} }; class Orange : virtual public Fruit, private Fruit_PI { private: float m_unitCostPrice; float m_unitSellPrice; public: Orange(int num, float unitCostPrice, float unitSellPrice) : Fruit_PI(num), m_unitCostPrice(unitCostPrice), m_unitSellPrice(unitSellPrice) {} virtual float totalCostPrice() const { return m_inventory * m_unitCostPrice; } virtual float totalSellPrice() const { return m_inventory * m_unitSellPrice;} }; void print_net_profit(const Fruit & fruit) { std::cout << "Net profit at current prices = $ " << fruit.netProfit() << std::endl; } int main() { Apple apple(100, 4.00, 4.25); Orange orange(50, 7.00, 7.25); print_net_profit(apple); print_net_profit(orange); } |
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgRnJ1aXR7CnB1YmxpYzoKICB2aXJ0dWFsICAgZmxvYXQgICB0b3RhbENvc3RQcmljZSgpIGNvbnN0ID0gMDsKICB2aXJ0dWFsICAgZmxvYXQgdG90YWxTZWxsUHJpY2UoKSBjb25zdCA9IDA7CiAgdmlydHVhbCBmbG9hdCBuZXRQcm9maXQoKSBjb25zdCA9IDA7Cn07CgpjbGFzcyBGcnVpdF9QSSA6IHZpcnR1YWwgcHVibGljIEZydWl0IHsKcHJvdGVjdGVkOgogIGludCBtX2ludmVudG9yeTsKcHVibGljOgogIEZydWl0X1BJKCBpbnQgbnVtKSA6IG1faW52ZW50b3J5KG51bSkge30KCiAgdmlydHVhbCBmbG9hdCBuZXRQcm9maXQoKSBjb25zdCB7IHJldHVybiB0b3RhbFNlbGxQcmljZSgpIC0gdG90YWxDb3N0UHJpY2UoKTsgfQp9OwoKY2xhc3MgQXBwbGUgOiB2aXJ0dWFsIHB1YmxpYyBGcnVpdCwgcHJpdmF0ZSBGcnVpdF9QSSB7CnByaXZhdGU6CiAgZmxvYXQgbV91bml0Q29zdFByaWNlOwogIGZsb2F0IG1fdW5pdFNlbGxQcmljZTsKcHVibGljOgogIEFwcGxlKGludCBudW0sIGZsb2F0IHVuaXRDb3N0UHJpY2UsIGZsb2F0IHVuaXRTZWxsUHJpY2UpIDogCiAgICBGcnVpdF9QSShudW0pLAogICAgbV91bml0Q29zdFByaWNlKHVuaXRDb3N0UHJpY2UpLAogICAgbV91bml0U2VsbFByaWNlKHVuaXRTZWxsUHJpY2UpIHt9CgogIHZpcnR1YWwgZmxvYXQgdG90YWxDb3N0UHJpY2UoKSBjb25zdCB7IHJldHVybiBtX2ludmVudG9yeSAqIG1fdW5pdENvc3RQcmljZTsgfQoKICB2aXJ0dWFsIGZsb2F0IHRvdGFsU2VsbFByaWNlKCkgY29uc3QgeyByZXR1cm4gbV9pbnZlbnRvcnkgKiBtX3VuaXRTZWxsUHJpY2U7fQp9OwoKY2xhc3MgT3JhbmdlIDogdmlydHVhbCBwdWJsaWMgRnJ1aXQsIHByaXZhdGUgRnJ1aXRfUEkgewpwcml2YXRlOgogIGZsb2F0IG1fdW5pdENvc3RQcmljZTsKICBmbG9hdCBtX3VuaXRTZWxsUHJpY2U7CnB1YmxpYzoKICBPcmFuZ2UoaW50IG51bSwgZmxvYXQgdW5pdENvc3RQcmljZSwgZmxvYXQgdW5pdFNlbGxQcmljZSkgOiAKICAgIEZydWl0X1BJKG51bSksCiAgICBtX3VuaXRDb3N0UHJpY2UodW5pdENvc3RQcmljZSksCiAgICBtX3VuaXRTZWxsUHJpY2UodW5pdFNlbGxQcmljZSkge30KCiAgdmlydHVhbCBmbG9hdCB0b3RhbENvc3RQcmljZSgpIGNvbnN0IHsgcmV0dXJuIG1faW52ZW50b3J5ICogbV91bml0Q29zdFByaWNlOyB9CgogIHZpcnR1YWwgZmxvYXQgdG90YWxTZWxsUHJpY2UoKSBjb25zdCB7IHJldHVybiBtX2ludmVudG9yeSAqIG1fdW5pdFNlbGxQcmljZTt9Cn07Cgp2b2lkIHByaW50X25ldF9wcm9maXQoY29uc3QgRnJ1aXQgJiBmcnVpdCkKewogIHN0ZDo6Y291dCA8PCAiTmV0IHByb2ZpdCBhdCBjdXJyZW50IHByaWNlcyA9ICQgIiA8PCBmcnVpdC5uZXRQcm9maXQoKSA8PCBzdGQ6OmVuZGw7Cn0KCmludCBtYWluKCkKewogIEFwcGxlIGFwcGxlKDEwMCwgNC4wMCwgNC4yNSk7CiAgT3JhbmdlIG9yYW5nZSg1MCwgNy4wMCwgNy4yNSk7CiAKICBwcmludF9uZXRfcHJvZml0KGFwcGxlKTsKICBwcmludF9uZXRfcHJvZml0KG9yYW5nZSk7Cn0K
-
upload with new input
-
result: Success time: 0.01s memory: 2680 kB returned value: 0
Net profit at current prices = $ 25 Net profit at current prices = $ 12.5


