
- •Лабораторна робота №1
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Завдання 3
- •Теоретичні відомості Масиви динамічної пам'яті
- •Приклад виконання завдання 1
- •Лістинг програми
- •Приклад виконання завдання 2
- •Лістинг програми
- •Приклад виконання завдання 3
- •Лістинг програми
- •Контрольні запитання
- •Лабораторна робота №2
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Теоретичні відомості Читання і запис текстових файлів
- •Читання і запис бінарних файлів
- •Відкриття бінарних файлів
- •Файли з послідовним доступом
- •Запис даних у файл з послідовним доступом
- •Файли з довільним доступом
- •Приклад виконання завдання 1
- •Приклад виконання завдання 2
- •Контрольні запитання
- •Лабораторна робота №3
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Завдання 3
- •Теоретичні відомості
- •Обмеження доступу до членів класу
- •Специфікатори доступу
- •Вбудовані функції-члени
- •Приклад виконання завдання 1.
- •Приклад виконання завдання 2.
- •Приклад виконання завдання 3.
- •Контрольні запитання
- •Лабораторна робота №4
- •Порядок виконання роботи
- •Завдання 2
- •Теоретичні відомості Конструктори і деструктори
- •Правила роботи з конструкторами і деструкторами
- •Варіант 10. Розробити описовий алгоритм, схему алгоритму і написати метод для підрахування кількості слів в текстовому файлі.
- •Приклад виконання завдання 2
- •Контрольні запитання
- •Лабораторна робота №5
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Теоретичні відомості Принципи спадкування в ооп
- •Оголошення похідних класів
- •Конструктори похідного класу
- •Функції члени похідного класу
- •Заборонені члени класу (Protected)
- •Приклад виконання Завдання 1
- •Контрольні запитання
- •Лабораторна робота №6
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Перевантаження операторів
- •Приклад виконання завдання 1
- •Приклад виконання завдання 2
- •Приклад виконання завдання 3
- •Приклад виконання завдання 4
- •Контрольні запитання
- •Лабораторна робота №7
- •Порядок виконання роботи
- •Завдання 1.
- •Завдання 2.
- •Теоретичні відомості
- •Структура наслідування класів
- •Постановка задачі
- •Розробити клас трикутника, чотирикутника, кола, точки
- •Контрольні запитання
- •Лабораторна робота №8
- •Порядок виконання роботи
- •Завдання 1
- •Контрольні запитання
- •Лабораторна робота №9
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Множинне спадкування
- •Контрольні запитання
- •Лабораторна робота №10
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Шаблони
- •Параметризовані класи
- •Визначені об’єкти-потоки
- •Операції поміщення та вилучення
- •Приклад виконання Завдання з варіанту 2
- •Контрольні запитання.
- •Лабораторна робота №11
- •Порядок виконання
- •Завдання 1
- •Завдання 2
- •Завдання 3 Варіант 1. Задача “Банківське переведення” (дата, час, № рахунку, розмір рахунку).
- •Ітератори
- •Для роботи з вектором необхідно:
- •Приклад роботи з вектором
- •Алгоритми
- •Застосування алгоритмів до вектора
- •Приклад 1 виконання Завдання 1
- •Приклад 2 виконання Завдання 2
- •Приклад 3 виконання завдання №3
- •Контрольні запитання
- •Завдання 1
- •Теоретичні відомості Приклад розробки програми
- •Контрольні запитання
- •Лабораторна робота №13
- •Порядок виконання
- •Завдання 2.
- •Теоретичні відомості
- •Стандартні потоки для базових класів
- •Форматування даних при обмінах з потоками
- •Маніпулятори
- •Приклад розробки програми
- •Контрольні запитання
- •Лабораторна робота №14
- •Порядок виконання
- •Завдання
- •Теоретичні відомості
- •Контрольні запитання
Обмеження доступу до членів класу
К
лас
Рисунок 2 -
Члени класу закриті за замовчуванням, але використання специфікатора prіvate бажано.
У класі можуть бути присутнім численні відкриті і закриті секції, що розташовуються в довільному порядку.
Для використання закритих даних-членів існує лише один спосіб - виклик відкритих функцій-членів класу.
Закриті (prіvate) члени класу доступні тільки членам того класу і нікому більше, закриті члени невидимі поза класом.
П
Специфікатори доступу
риклад
include iostream.h
include
stdio.h
class
CTime {
private:
int
year;
int
month;
int
day;
закриті дані
члени
int
hour;
int
minute;
public:
void
Display(void);
void
Get Time(intm,intd,inty,inth2,intmin);
void
Set Time (int m,int d,int y,int h,int min);
}
main ( )
{
CTime
obj1;
//
об’єкт
типу
CTime
int month, day, year, hous, minute;
obj1. Set Time (7, 14, 2003, 8, 30);
cout “obj1==“; obj1.Display();
obj1.Get Time(month, day, year, hous, minute);
obj1. Get Time(month, day, year, ++hous, minute);
cout “ Next hous==“; obj1.Display();
return ();}
void
CTime::Display(void)
Оператор
дозволу
{
області
видимості
char s [32];
Sprintf(s,“Data:02d/02d/04d Time:02d:02d\n” =,month, day, year, hour, minute);
cout s;
}
void CTime::Get Time(intm,intd,inty,inth2,int min);
}
m=month; // Повернення даних-членів тому, хто викликав функцію
d=day;
y=year;
h2=hare;
min=minute;
}
void CTime :: Set Time (int m, int d, int y, int h, int min);
{
month
= m; //
Присвоювання
аргументів даним-членам.
day = d;
year = y;
hare = h2;
minute = min;
}
Вбудовані функції-члени
У більшості випадків виклики функцій-членів замість прямого доступу до даних-членів помітно позначаються на швидкодії програми. Звичайно, у наш час необхідна гранична ефективність. Для цього С++ дозволяє повідомляти класи з функціями-членами, що вбудовуються. Функції-члени, що хоч вбудовуються, використовуються так само, як і інші функції, у скомпільованому коді вони не викликаються, а вставляються безпосередньо в скомпільовану програму: (див. рис)
Рисунок 3 -
Наприклад
include iostream.h
include time.h
include string.h
class CTime
{
private:
Вбудовані
функції-члениlong dt; - дані
дата і час перетворяться в секунди і
представлені у виді довгого цілого. Це
зручно для використання різних
бібліотечних функцій, використаних
такою формою збереження даних повертає
у виді символьного рядка дату і час.
рublic:
void Display(void){coutctime(dt);}
void Get Time (int m, int d, int y, int h2, int min);
void Set Time (int m, int d, int y, int h, int min);
char * Get STime ( void )
{
char *cp = strdup ( ctime (
dt)); }
return cp;
}
void Change Time(long n minutes){ dt+=(n minutes60);}
//зсув в часі додає до поточного часу n mіnutes хвилин
}