: TestL.AddElList (0); break; '3 ': cout <<"Enter the number of element"; <<"you want to delete" <<' n ';>> Number;. DelElList (Number ); break; '4 ': TestL.OutpList (0); break; '5': break;: cout <<"Input Error";
} (PKey, 1,1, stdin); (Key == '5 '); ();
} (1); (); <<"Second part:" <<' n'; L1 ("L1");// Об'єкт - список { ((ch == 'Y') | | (ch == 'y')). AddElList (0);// Додавання ел-та <<"Input error" <<' n';//Натиснуто не та клавіша <<"Do you want to add one";// Запит на введення слід. ел-та <<"more element? (Y/N)" <<' n';>> ch; ((ch == 'N') | | (ch == 'n '));// Вихід з циклу
} (1);// Нескінченний цікл.AddElList (12, 0);. OutpList (0);// Висновок сп-ка на екран (); (); <<" ; Third part: "<<' n'; L2; i;. CreateList (); (i = 0; i <= IMAX; i + +) {. AddElList ((float) i +1, 0) ;
}. OutpList (0);// Висновок сп-ка на екран (); 0;
}
// ---------------------------------------- -----------------------------------
У наведеному прикладі визначається базовий клас односвязного списку List відповідно до концепції повні класу містить всі основні функції роботи зі списками: AddElList (char) - додавання елемента, OutpList (char) - виведення вмісту мпіска на екран, DelElList (int) - видалення елемента, CreateList () - первісне створення списку.
Як випливає з тіста програми, клас двусвязного списку DLList є похідним класом від List. Така реалізація доцільна внаслідок того, що більшість методів односвязного списку повністю з програмного коду збігаються з методами двусвязного, хоча обробка двусвязного списку повинна бути доповнена розглядом зворотних посилань на елементи. Аналогічним чином реалізується і клас закільцьованого списку RLList, з тих же міркувань є похідним від класу List. p align="justify"> Специфікатор доступу protected дозволяє розширити область видимості полів-даних класу List так, щоб їх можна було використовувати в класах, похідних від класу List - DLList і RLList. Функції-члени класу List описані з використанням специфікатора protected, що дозволяє використовувати їх імена як при визначенні похідних класів, так і у всіх інших функціях програми. Посилання на попередній елемент списку в описі класу DLList за замовчуванням описана як privat, оскільки даний клас не є базовим для інших класів. p align="justify"> Для всіх класів, описаних в даному прикладі, використовується один і той же деструктор. Він успадковується похідними класами як звичайна функція-член, і отже буде працювати правильно з будь-якими їх об'єктами, незважаючи на відмінності за кількістю і розміром полів. p align="justify"> Функція main () у прикладі призначена лише для перевірки працездатності визначених у програмі класів і тому містить опис необхідного об...