Иллюстрированный самоучитель по Architecture .NET

Класс 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";
}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.