Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Проектування і реалізація абстракцій типів даних

Реферат Проектування і реалізація абстракцій типів даних





уникнути, представивши кожен об'єкт класу як покажчик на В«справжнійВ» об'єкт. Так як всі ці покажчики будуть мати однаковий розмір, а розміщення В«справжніхВ» об'єктів можна визначити у файлі, де доступна закрита частина, то це може вирішити проблему. Однак рішення передбачає додаткові посилання по пам'яті при зверненні до членів класу, (т.е включає щонайменше один виклик програм виділення і звільнення вільної пам'яті). p align="justify"> Але чому ж користувачам класу не дозволяється звертатися до закритих членам, чому їх опису повинні приводитися в заголовних файлах, які, як передбачається, користувач читає? Відповідь - ефективність. У багатьох системах і процес компіляції, і послідовність операцій, що реалізують виклик функції, простіше, коли розмір автоматичних об'єктів відомий під час компіляції. p align="justify"> Подібно функціям, класи також можуть бути параметризовані одним або декількома типами. Типовим прикладом такої можливості можуть служити класи з невідомими заздалегідь типами елементів, які реалізуються за допомогою шаблонів класів. В якості прикладу розглянемо шаблон класу, який реалізує чергу. p align="justify"> Файл UnQLimSz.h

Містить стандартні і призначені для користувача файли, що включаються та визначення шаблонного класу для роботи з універсальної чергою обмеженого розміру на базі масиву. У шаблоні класів реалізовані наступні операції з чергою:

* ініціалізація черги (конструктор);

* руйнування черги із звільненням зайнятої динамічної пам'яті (деструктор);

* занесення елемента з лівого кінця;

* занесення елемента з правого кінця;

* витяг елемента з лівого кінця;

* витяг елемента з правого кінця;

* друк стану черги з використанням покажчика на лівий кінець черги;

* друк стану черги з використанням покажчика на правий кінець черги.

Додавання елемента в правий кінець черги UnQueueLimSize :: AddRight (

// false - елемент не добавленT

& add)// Дане для добавляемог елемента

{

// Черга заповнена? (Size> = MaxSize)

{false;

}

// Додаємо елемент у чергу = (Right +1)% MaxSize; pQueue [Right] = add; + +; true;

}

// Додавання елемента в лівий кінець черги UnQueueLimSize :: AddLeft (

// false - елемент не добавленT

& add)// Дане для додається елемента

{

// Черга заповнена? (Size> = MaxSize)

{false;

}


// Додаємо елемент у чергу [Left] = add; = ...


Назад | сторінка 2 з 5 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Проект першої черги БГРЕС-2 з використанням турбіни К-800-240-5 і котлоагре ...
  • Реферат на тему: Прикладне додаток &Розробка проекту для створення нового класу Auto і елеме ...
  • Реферат на тему: Проект гірничих робіт при проходці дренажних виробок при будівництві третьо ...
  • Реферат на тему: Методика визначення елемента циклону
  • Реферат на тему: Визначення елемента витрат з оплати праці