Коллекции. Пример класса ArrayList (Список массивов).
Класс Customer (Клиент)
Все файлы с исходными кодами программы-примера находятся в папке Customer-Collection. В файле customer .h находится реализация классов Customer (Клиент) и Customers (Клиенты). Исходный код для класса Customer (Клиент) почти такой же, как приведенный ранее. Единственное добавление – специальный конструктор, инициализирующий объект Customer (Клиент) заданным идентификатором. Этот конструктор используется классом Customers (Клиенты) при удалении элемента (UnregisterCustomer) и при проверке того, присутствует ли в коллекции некоторый элемент (Checkld).
_gc class Customer // сборщик мусора – класс Клиент { pmblic: Customer(int id) // Клиент (int-идентификатор) { nCustomerld = id; // идентификатор pFirstName = ""; pLastName = ""; pEmailAddress = ""; } };
Класс Customers (Клиенты) содержит список клиентов, хранимый в ArrayList (Список массивов).
_gc class Customers // сборщик мусора – класс Клиенты { private: // частный ArrayList *pCustomers; public: Customers() // Клиенты { pCustomers = new ArrayList; RegisterCustomer( "Rocket", // Ракета "Squirrel", // Белка "rocky@frosbitefalls.com"); RegisterCustomer("Bullwinkle", "Moose", // Американский лось "moose@wossamotta.edu"); } int RegisterCustomer(String *pFirstName, String *pLastName, String *pEmailAddress) { Customer *pCust = new Customer(// Клиент *pCust = новый Клиент { pFirstName, pLastName, pEmailAddress); pCustomers › Add(pCust); // Добавить return pCust › nCustomerId; } void UnregisterCustomer(int id) // идентификатор { Customer *pCust = new Customer(id); // Клиент *pCust = новый Клиент (идентификатор); pCustomers › Remove(pCust); } void ChangeEmailAddress(int id, String *pEmailAddress) // (int идентификатор, Строка *pEmailAddress) { lEnumerator *pEnum = pCustomers-XSetEntimerator (); while (pEnum › MoveNext()) { Customer *pCust = // Клиент dynamic_cast<Customer *>(pEnum › Current); // Клиент if (pCust › nCustomerId == id) // если (pCust › nCustomerld == идентификатор) { pCust › pEmailAddress = pEmailAddress; return; } }