, чи можна уявити дане число у форматі char;
Перевизначити наступні операції:
1) присвоювання (=);
2) додавання - - арифметична різниця рядків;
3) операція == - перевірка на рівність;
Розробник вправі вводити будь-яке (з обґрунтуванням необхідності) число додаткових членів і методів.
Завдання:
Розробити ієрархію класів за наступною схемою:
з обов'язковою підтримкою заданих членів і методів.
Написати тестову програму, яка:
1) динамічно виділяє масив покажчиків на базовий клас (4-6 шт.);
2) в режимі діалогу заповнює цей масив покажчиками на похідні класи, при цьому екземпляри похідних класів створюються динамічно із завданням початкових значень;
3) для створених примірників похідних класів виконується перевірка всіх розроблених методів (відповідно до варіанта завдання), з висновком вихідних даних і результатів на дисплей.
Режим діалогу забезпечується за допомогою ієрархічного меню.
Основні пункти:
1. Ініціалізація raquo ;.
Підпункти:
1.1. Число елементів - Задає число елементів у масиві покажчиків на базовий клас. Забороняється після завдання числа елементів користатися цим пунктом меню.
1.2. Початкове значення - За допомогою цього пункту меню можна задати номер елемента, його тип і початкове значення.
Задавати початкові значення і працювати з іншими пунктами меню забороняється доти, поки не буде задано число елементів. Допускається задати нове початкове значення кілька разів.
2. Тестування
В якості підпунктів вказуються типи рядків з варіанта завдання і
обов'язкові для всіх підпункти рядок і завдання операнда raquo ;, наприклад:
. 1. Рядок raquo ;;
2.2. Рядок-ідентифікатор raquo ;;
2.3. Десяткова рядок raquo ;;
Після вибору одного з пунктів меню пропонується вибрати один з методів списку всіх обов'язкових методів (крім конструкторів і деструкторів), пов'язаних з обраним підпунктом. Результат виводиться на екран.
3. Вихід
Значення примірників класів по мірі їх ініціалізації виводяться на дисплей і залишаються на весь час виконання програми. Після вибору операндів вони підсвічуються кольором, відмінним від інших примірників.
1. Клас Рядок
.1 Базовий клас Рядок
Назва класу: String. Є базовим класів для класів десяткова рядок і рядок ідентифікатор.
Дані-члени класу, оголошені як protected:
) char * str - покажчик на масив символів;
2) int len ??- змінна, що зберігає довжину рядка.
Методу класи рядок:
1) string () - конструктор без параметрів, створює рядок нульової довжини;
2) String (const char *) - конструктор, як параметр приймає Сі-рядок .;
) String (const char) - конструктор, що приймає як параметр один символ .;
) String (const String amp;) - конструктор копіювання;
) ~ String () - деструктор;
) void clear ();- Функція, що очищає рядок;
) char * text () - функція, що повертає Сі-рядок
) void friend report (char *) - дружня функція виводить повідомлення про роботу конструкторів/деструкторів на консоль, а так само повідомлення про роботу конструкторів в праве діалогове вікно.
.2 Рядок ідентифікатор
інтерфейс програмування графічний операнд
Назва класу: Identifier. Даний клас є похідним класом класу String.
Методи класу Identifier:
) Identifier () - конструктор;
2) Identifier (const char *) - конструктор, що приймає як параметр си-рядок.
3) Identifier (const Identifier amp;) - конструктор копіювання;
) ~ Identifier () - деструктор;
) Identifier operator=(const Identifier amp;) - перевизначення операція присвоювання типу об'єкт = об'єкт raquo ;;
6) Identifier operator=(const char *) - перевизначення операція присвоювання ти...