Hotel Prices

Sort by

recency

|

104 Discussions

|

  • + 0 comments

    Adding virtual keyword in front of get_price() in Hotel Room is enough.

    class HotelRoom {
    public:
        HotelRoom(int bedrooms, int bathrooms) 
        : bedrooms_(bedrooms), bathrooms_(bathrooms) {}
        
        virtual int get_price() {
            return 50*bedrooms_ + 100*bathrooms_;
        }
    private:
        int bedrooms_;
        int bathrooms_;
    };
    
    class HotelApartment : public HotelRoom {
    public:
        HotelApartment(int bedrooms, int bathrooms) 
        : HotelRoom(bedrooms, bathrooms) {}
    
        virtual int get_price() override{
            return HotelRoom::get_price() + 100;
        }
    };
    
  • + 0 comments

    Adding virtual keyword in front of get_price() in Hotel Room is enough.

    class HotelRoom { public: HotelRoom(int bedrooms, int bathrooms) : bedrooms_(bedrooms), bathrooms_(bathrooms) {}

    virtual int get_price() {
        return 50*bedrooms_ + 100*bathrooms_;
    }
    

    private: int bedrooms_; int bathrooms_; };

    class HotelApartment : public HotelRoom { public: HotelApartment(int bedrooms, int bathrooms) : HotelRoom(bedrooms, bathrooms) {}

    virtual int get_price() override{
        return HotelRoom::get_price() + 100;
    }
    

    };

  • + 0 comments
    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    class HotelRoom {
    public:
        HotelRoom(int bedrooms, int bathrooms) 
        : bedrooms_(bedrooms), bathrooms_(bathrooms) {}
        
        int get_price() {
            return 50*bedrooms_ + 100*bathrooms_;
        }
    private:
        int bedrooms_;
        int bathrooms_;
    };
    
    class HotelApartment : public HotelRoom {
    public:
        HotelApartment(int bedrooms, int bathrooms) 
        : HotelRoom(bedrooms+2, bathrooms) {}
    
        int get_price() {
            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;
    }
    
  • + 0 comments

    Nah... I didn't know we were playing find the missing keyword. This took me some minutes while I was thinking why it doesn't work when the calculations are actually correct lol.

  • + 0 comments

    Im gonna be real with yall, at first when I did this I just created a new vector for apartment rooms... I didn't really understand virtuals at that time so when I came back I was mentally kicking my past self.