#include <iostream>
using namespace std;
class BakedGood {
private:
double price;
public:
BakedGood(double p) : price(p) { }
virtual void print() const { std::cout << "($" << price << ')'; }
};
class Bread : public BakedGood {
public:
Bread(double p) : BakedGood(p) { }
void print() const {
std::cout << "Wheat bread ";
BakedGood::print();
}
};
class CupCake: public BakedGood {
public:
CupCake(double p) : BakedGood(p) { }
void print() const {
std::cout << "Chocolate cupcake ";
BakedGood::print();
}
};
int main() {
Bread b(4.5);
CupCake c(1.95);
c.print(); std::cout << std::endl;
b.print(); std::cout << std::endl;
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQmFrZWRHb29kIHsKICAgIHByaXZhdGU6CiAgICAgICAgZG91YmxlIHByaWNlOwogICAgcHVibGljOgogICAgICAgIEJha2VkR29vZChkb3VibGUgcCkgOiBwcmljZShwKSB7IH0KICAgICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoKSBjb25zdCB7IHN0ZDo6Y291dCA8PCAiKCQiIDw8IHByaWNlIDw8ICcpJzsgfQp9OwoKY2xhc3MgQnJlYWQgOiBwdWJsaWMgQmFrZWRHb29kIHsKICAgIHB1YmxpYzoKICAgIAlCcmVhZChkb3VibGUgcCkgOiBCYWtlZEdvb2QocCkgeyB9CiAgICAgICAgdm9pZCBwcmludCgpIGNvbnN0IHsKICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJXaGVhdCBicmVhZCAiOwogICAgICAgICAgICBCYWtlZEdvb2Q6OnByaW50KCk7CiAgICAgICAgfQp9OwoKY2xhc3MgQ3VwQ2FrZTogcHVibGljIEJha2VkR29vZCB7CiAgICBwdWJsaWM6CiAgICAJQ3VwQ2FrZShkb3VibGUgcCkgOiBCYWtlZEdvb2QocCkgeyB9CiAgICAgICAgdm9pZCBwcmludCgpIGNvbnN0IHsKICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJDaG9jb2xhdGUgY3VwY2FrZSAiOwogICAgICAgICAgICBCYWtlZEdvb2Q6OnByaW50KCk7CiAgICAgICAgfQp9OwoKaW50IG1haW4oKSB7CglCcmVhZCBiKDQuNSk7CglDdXBDYWtlIGMoMS45NSk7CgkKCWMucHJpbnQoKTsgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKCWIucHJpbnQoKTsgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXJldHVybiAwOwp9