Программа Hotel (Гостиница)
Теперь представим первую версию программы управления системой бронирования Гостиничных номеров, которую мы будем использовать и расширять в следующих главах. Обратите внимание, что класс Hotel (Гостиница) хранится не в сборке ЕХЕ, а в динамически подключаемой библиотеке (DLL).
Вы можете открыть готовое решение, находящееся в папке HotelRes\Hotel, или создать проект и ввести исходный код сами. Для того чтобы это сделать, необходимо создать проект библиотеки классов на управляемом C++ (Managed C++ Class Library project), называющийся Hotel (Гостиница), добавить исходный код, а затем скомпилировать проект. Заметьте, что поскольку выходной файл – динамически подключаемая библиотека (DLL), его не удастся протестировать до создания исполнимого файла (ЕХЕ) программы-клиента.
Создание библиотеки классов на управляемом C++ (Managed C++ Class Library project)
Создайте проект библиотеки классов на управляемом C++ под названием Hotel (Гостиница):
- Откройте Visual Studio .NET.
- Выберите пункт меню File › New › Project (Файл › Создаты › Проект) для того чтобы вызвать диалог New Project (Создание проекта).
- Выберите в списке Project Type (Тип проекта) Visual C++ Projects (Проекты на Visual C++).
- Выберите в списке Template (Шаблон) Managed C++ Class Library Project (Проект библиотеки классов на управляемом C++),
- Введите Hotel (Гостиница) в поле Name (Название).
- Задайте папку, в которой будет сохранен проект.
- Щелкните на кнопке ОК. для того чтобы закрыть диалог New Project (Создание проекта) и создать проект.
Добавьте исходный код: - Дважды щелкните на файле Hotel.cpp в окне Solution Explorer (Поиск решения).
- Введите исходный код примера Hotel (Гостиница). Скомпилируйте проект:
- Выберите пункт меню Build › Build (Сборка › Собрать).
Хотя определение класса уже присутствует в заголовочном файле и используется в качестве типа данных в срр-файлах, мы, ради простоты и наглядности, поместили данное ниже определение класса Hotel (Гостиница) непосредственно в исходный файл Hotel. срр. Это привело также к тому, что указанный файл стал больше похож на исходный файл С#, в котором директива Iinclude отсутствует. Visual Studio создала, конечно, файл Hotel.h, но это не имеет значения, т.к. соответствующая директива #include была удалена из файла Hotel.срр.
//Hotel.cpp
finclude "stdafx.h" // имеет #using <mscorlib.dll>
using namespace System;
// использовать пространство имен Система;
public _gc class Hotel
// класс сборщика мусора Гостиница
{
private: // частный
String *pcity; // Строка
String *pname; // Строка
int number;
Decimal rate; // Десятичное
public:
Hotel(String *pcity, String *pname, // Гостиница
int number, double rate)
{
this › pcity = pcity;
this › pname = pname;
this › number = number;
this › rate = rate;
}
Hotel() // Гостиница
{
this › pcity = 0;
this › pname = 0;
this › number = 50; // значение по умолчанию 50
this › rate = 0;
}
String *GetCity() // Строка
{
return pcity;
}
String *GetName() // Строка
{
return pname;
}
int GetNumber()
{
return number;
}
void SetNumber(int val)
{
number = val;
}
Decimal GetRate() // Десятичное число
{
x return rate;
}
void SetRate(Decimal val) // Десятичное число
{
rate = val; } void RaisePrice(Decimal amount) // Десятичное количество
{
rate = rate+1;
}
};
