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

Программа Hotel (Гостиница)

Теперь представим первую версию программы управления системой бронирования Гостиничных номеров, которую мы будем использовать и расширять в следующих главах. Обратите внимание, что класс Hotel (Гостиница) хранится не в сборке ЕХЕ, а в динамически подключаемой библиотеке (DLL).

Вы можете открыть готовое решение, находящееся в папке HotelRes\Hotel, или создать проект и ввести исходный код сами. Для того чтобы это сделать, необходимо создать проект библиотеки классов на управляемом C++ (Managed C++ Class Library project), называющийся Hotel (Гостиница), добавить исходный код, а затем скомпилировать проект. Заметьте, что поскольку выходной файл – динамически подключаемая библиотека (DLL), его не удастся протестировать до создания исполнимого файла (ЕХЕ) программы-клиента.

Создание библиотеки классов на управляемом C++ (Managed C++ Class Library project)

Создайте проект библиотеки классов на управляемом C++ под названием Hotel (Гостиница):

  1. Откройте Visual Studio .NET.
  2. Выберите пункт меню File › New › Project (Файл › Создаты › Проект) для того чтобы вызвать диалог New Project (Создание проекта).
  3. Выберите в списке Project Type (Тип проекта) Visual C++ Projects (Проекты на Visual C++).
  4. Выберите в списке Template (Шаблон) Managed C++ Class Library Project (Проект библиотеки классов на управляемом C++),
  5. Введите Hotel (Гостиница) в поле Name (Название).
  6. Задайте папку, в которой будет сохранен проект.
  7. Щелкните на кнопке ОК. для того чтобы закрыть диалог New Project (Создание проекта) и создать проект.
    Добавьте исходный код:
  8. Дважды щелкните на файле Hotel.cpp в окне Solution Explorer (Поиск решения).
  9. Введите исходный код примера Hotel (Гостиница). Скомпилируйте проект:
  10. Выберите пункт меню 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;
}
};
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.