You are viewing a single comment's thread. Return to all comments →
It's a matter of overriding.
#include <iostream> #include <vector> using namespace std; class HotelRoom { int bedrooms; int bathrooms; public: HotelRoom(int &bed, int &bath) : bedrooms(bed), bathrooms(bath) {} virtual int get_price() { return 50 * bedrooms + 100 * bathrooms; } }; class HotelApartment : public HotelRoom { public: HotelApartment(int &bedrooms, int &bathrooms) : HotelRoom(bedrooms, bathrooms) {} int get_price() override { return HotelRoom::get_price() + 100; } }; int main() { int n; cin >> n; vector<HotelRoom*> rooms; for (int i = 0; i < n; ++i) { string room_type; int bedrooms; int bathrooms; cin >> room_type >> bedrooms >> bathrooms; if (room_type == "standard") { rooms.push_back(new HotelRoom(bedrooms, bathrooms)); } else { rooms.push_back(new HotelApartment(bedrooms, bathrooms)); } } int total_profit = 0; for (auto room : rooms) { total_profit += room->get_price(); } cout << total_profit << endl; for (auto room : rooms) { delete room; } rooms.clear(); return 0; }
Seems like cookies are disabled on this browser, please enable them to open this website
Hotel Prices
You are viewing a single comment's thread. Return to all comments →
It's a matter of overriding.