- •Як описуються цілі числа?
- •Порядкове читання вводу.
- •Що робить функція-член get ()?
- •Клас string.
- •Створення структури.
- •Що робить оператор enum?
- •Як робиться перерахування значень?
- •1. Змінна і змінна показника.
- •Використання операцій new та delete.
- •13. Отримання простору пам’яті.
- •Копіювання рядка із масиву.
- •Комбіновані операції присвоювання
- •Вирази відношень
- •Аналіз умови циклу:
- •Логічні оператори.
- •Простий файловий ввід-вивід символьної інформації.
- •Деякі основні факти, що використовують cout у консольному виводі.
- •Файловий ввід.
- •Як вказати діапазон елементів у масиві?
- •Як зробити передачу адреси замість передачі самої структури?
- •Використання посилальних аргументів.
- •Аргументи, що визначаємо за замовчуванням.
- •Перевантаження функції.
- •Моделі пам’яті і простір імен - Окрема компіляція програм
- •Директива #include.
- •Об’ява структур.
- •Довгочасність існування області зберігання, області видимості та компоновки.
- •Область видимості і зв’язування.
- •Автоматична довгочасність збереження.
- •Автоматичні змінні та стек.
- •Регістрові змінні.
- •П’ять видів змінних
- •Мовне зв’язування, котре дотикається функції.
Що робить оператор enum?
Засіб С++ перерахувань enum є альтернативним способом const для створення символьних констант. Он також дозволяє визначати нові типи, але дуже обмежено. Розглянемо такий оператор:
enum spectrum {red, orange, yellow, green, blue, violet, indigo, ultraviolet};
Цей оператор робить дві речі:
Об’являє ім’я нового типу – spectrum; spectrum об’явлений як перерахування, також як змінна struct називається структурою.
Установлює red, orange, yellow, green, blue, violet, indigo, ultraviolet, як символьні константи для значень цілих чисел 0=7. Ці константи мають назву нумератор.
Як робиться перерахування значень?
Для перерахувань визначена тільки операція присвоєння. Арифметичні операції не передбачені. Наприклад:
band = green; //вірно
band = green + red; //не вірно
Вірними значеннями перерахувань є лише ті, що названі в об’яві. Однак С++ дозволяє розширити список допустимих значень за рахунок приведення типів. Кожне перерахування має діапазон, і, використовуючи приведення типу, можна присвоїти будь-яке ціле значення у межах цього діапазону, навіть якщо дане значення не перераховано ні в одному із перерахувань. Припустимо, що bits та myflag визначені таким чином:
enum bits {ont =1, two =2, four =4, eight = 8};
У такому випадку наступний оператор є правильним:
myflag = bits(6); //тому що 6 лежить в межах діапазону
Тут 6 не є значенням ні одного із перерахувань, однак лежить у межах даного визначеного перерахування. Обчислення верхньої межі діапазону робиться наступним чином: береться максимальне число у межах діапазону і визначається ступінь двійки яка перебільшує це максимальне значення і з нього віднімається 1. Наприклад: максимальне значення 175, а ступінь двійки, що перевищує 175, є 256, то діапазон присвоює своє максимальне значення 255. Обчислення нижньої межі діапазону робиться наступним чином: коли воно рівно 0 або більше, то вибирається 0, а коли значення від’ємно, то береться той ж підхід, що і до верхньої межі, але з мінусом. Наприклад , коли мінімальний нумератор має значення -6, то наступна ступінь двійки буде -8, і нижня межа стає рівною -7. Нумератор може використовувати від 1 байта до 4 байт для типу long.
Показники та вільне сховище
Оператор об’яви вказує тип та символьне ім’я змінної та масиву. Воно також резервує пам’ять у комп’ютері для цієї змінної або масиву і відстежує її місцезнаходження. Змінна має логічний адрес (це її ім’я), а фізичний адрес від користувача схований..
Розглянемо, як з’ясувати фізичний адрес замість логічного за допомого показників. Для отримання адреси звичайної змінної застосовують символ & до змінної. Наприклад, коли home – змінна, то &home – її адрес.
Показник та операція разименовання.
Для відображення адреси використовується 16-річна нотація. Нова стратегія зберігання даних, як іменованої (логічної) величини, так і довільної (фізичної) величини. Для цього передбачений спеціальний тип змінної – показник, який може зберігати адрес як значення. Ім’я показника вказує місцезнаходження. Застосовуючи операцію *, яку називають операцією разименованія, можна отримати значення, яке зберігатися в указаному адресному місці.
Припустимо, що manly – це показник. В такому випадку manly вказує адресу, *manly – значення, яке знаходиться по цьому адресу. Комбінація *manly стає еквівалентом звичайної змінної типу int.
ЛЕКЦІЯ 9
