Класс HotelReservation. Класс HotelBroker.
Класс HotelReservation– это простой класс, который является производным класса Reservation (Резервирование). Его код находится в файле hotelbroker.h. Этот класс включает в себя некоторые дополнительные общедоступные поля и свойство ArrivalDate (Дата прибытия), которое несет больше конкретного смысла, чем поле Date (Дата) базового класса.
public _gc class HotelReservation: public Reservation // класс сборщика мусора – HotelReservation: общедоступное Резервирование { public: int Customerld; String *HotelName; String *City; DateTime DepartureDate; _property DateTime get_ArrivalDate() { return Date; // Дата } _property void set_ArrivalDate(DateTime value) // значение { Date = value; // Дата = значение; } };
Класс HotelBroker
Самая важная задача в примере – реализовать класс HotelBroker, который является производным от класса Broker (Брокер). Код этого класса находится в файле hotel-broker.h.
public _gc class HotelBroker: public Broker // класс сборщика мусора – HotelBroker: общедоступный Брокер { private: // частный // статические константы; static const int MAXDAY = 366; static const int MAXUNIT = 10; static const int MAXCITY = 5; static private int nextCity = 0; // статическая частная String *cities[]; public: HotelBroker(): Broker(MAXDAY, MAXUNIT) // Брокер { cities = new String*[MAXCITY]; // города AddHotel"Atlanta", "Dixie", 100, 115.00); //Атланта, // Дикси AddHotel("Atlanta", "Marriott", 500, 70.00); // Атланта, // Мариот AddHotel("Boston", "Sheraton", 250, 95.00); // Бостон, // Шератон } };
Для описания массивов вводятся константы, и создается массив, содержащий названия городов. Конструктор определяет массивы с помощью конструктора базового класса, инициализирует массив cities (города) и добавляет несколько гостиниц для тестирования.
Потом определяется свойство NumberCity и метод добавления гостиницы в список гостиниц.
_property int get_NumberCity() { return nextCity; } String *AddHotel( String *city, String *name, int number, // число Decimal cost) // Десятичная стоимость { if (Findldfcity, name)!= -1) // если (Findld (город, название)! =-1) return "Hotel is already on the list"; // "Гостиница уже находится в списке"; Hotel *hotel = // Гостиница new Hotel(city, name, number, cost); // новая Гостиница (город, название, число, стоимость); AddUnit(hotel); // гостиница AddCity(city); // город return "OK"; }