
Inr day, month, year; // цілі: день, місяць та рік народження
char address[50]; // адреса проживання (масив 50 символів)
}
Після опису структури можна оголосити змінну.
Наприклад Person student;
Змінна student містить в собі різнотипні дані. Звернутися до того чи іншого даного змінної типу структури можна так:
<назва змінної>.<назва поля>
Наприклад student.fam = “Иванов”
Структури використовуються для створення баз даних. Базою даних є масив, кожен елемент якого має структурний тип.
де student – масив з п’яти елементів, кожен з яких містить описані в типі person поля.
В програмі ми оголосили динамічний масив з п’яти елементів типу person, де тип person є структурою. Можна, звичайно використовувати і статичний масив (замість person *student = new person[5] записати person student[5]). Результат роботи програми при цьому не зміниться.
_____
В програмуванні дуже широко використовуються вказівники на структури.
<назва структури> *<назва вказівника>
Наприклад person *student: student – вказівник на структуру person.
Доступ до полів вказівника на структуру здійснюється дещо інакше, ніж до полів відповідної змінної, а саме:
<назва вказівника>-><назва поля>
Крім того, одним із полів структури може бути вказівник. Більш того цей вказівник може вказувати на таку ж структуру.
11. Основні принципи об’єктно-орієнтованого програмування в С++. Інкапсуляція. Поліморфізм. Наслідування.
Концепція об'єктно-орієнтованого програмування має на увазі, що основою управління процесом реалізації програми є передача повідомлень об'єктам. Тому об'єкти повинні визначатися спільно з повідомленнями, на які вони повинні реагувати при виконанні програми. У цьому полягає головна відмінність ООП від процедурного програмування. Таким чином, об'єктно-орієнтована програма складається з об'єктів - окремих фрагментів кодів, які оброблюють дані, які взаємодіють один з одним через певні інтерфейси.
Як відомо, існує три основних принципи, що становлять суть об'єктно -орієнтованого програмування: інкапсуляція, наслідування і поліморфізм.
Зміст інкапсуляції полягає у приховуванні від зовнішнього користувача деталей реалізації об'єкта, замість цього надаючи інтерфейс взаємодії. Слугує передусім для того, щоб не давати можливості клієнту змінювати внутрішній стан об'єкта без відома останнього, залишаючи лише можливість впливу через «офіційні» методи роботи з полями.
Поліморфізм — концепція в програмуванні, відповідно до якої використовується спільний інтерфейс для обробки даних різних спеціалізованих типів.
В контексті об'єктно-орієнтованого програмування, найпоширенішим різновидом поліморфізму є здатність екземплярів підкласу грати роль об'єктів батьківського класу, завдяки чому екземпляри підкласу можна використовувати там, де використовуються екземляри батьківського класу.
В об'єктно-орієнтованого програмування, наслідування — метод утворення нових класів на основі використання вже існуючих.
Визначення нового класу може базуватись на визначенні вже існуючого. В такому випадку, новий клас отримає властивості та поведінку базового класу, та доповнить їх своїми власними. У випадку одиничного успадкування, у кожного класу може бути лише один безпосередній базовий клас. У випадку множинного успадкування, дозволяється існування декількох безпосередніх надкласів.
12. Форматований ввід/вивід в С++ з використанням членів класу ios. Прапори форматів.
Формати представлення що виводиться інформації та правила відтворення даних при введенні можуть бути змінені програмістом за допомогою прапорів форматування. Ці прапори успадковані всіма потоками з даного класу ios.
Під час введення-виведення можна виконувати форматування даних.
Щоб використовувати операції>> і <<з даними користувача типів, що визначаються користувачем, необхідно розширити дію цих операцій, ввівши нові операції-функції. Першим параметром операції - функції має бути посилання на об'єкт потокового типу, другий - посилання або об'єкт для користувача типу. У файлі iostream.h визначені наступні об'єкти, пов'язані з стандартними потоками введення-виводу:
cin - об'єкт класу istream, пов'язаний зі стандартним буферізірованним вхідним потоком;
cout - об'єкт класу ostream, пов'язаний зі стандартним буферизуєрованным вихідним потоком;