
- •Вирази і оператори.
- •Логічні оператори.
- •Оператор розгалуження.
- •Оператор вибору.
- •Арифметичні операції. Пріоритет виконання.
- •Вказівники константи.
- •Вказівники змінні.
- •Функції.
- •Функція для роботи з файлами.
- •Передача аргументів у функцію.
- •Значення, яке повертає функція.
- •Рекурсивні функції.
- •Блоки і область видимості змінних.
- •Оператори повторення.
- •Структури. Вкладені структури.
- •Створення класів.
- •Управління виконанням програм.
- •Одновимірні масиви даних.
- •Двовимірні масиви даних.
- •Створення масивів з використанням вказівників.
- •Алгоритми сортування масивів.
- •Рядки і операції над ними.
- •Функції введення-виведення.
- •Конструктори, деструктори.
- •Класи. Успадкування.
- •Класи. Поліморфізм.
- •Класи. Інкапсуляція.
- •Вказівник this.
- •Перевантаження операцій та операторів.
- •Поліморфізм і віртуальні функції.
- •Стандартний клас string.
- •Стандартний клас queue.
- •Стандартний клас vector.
- •Стандартний клас list.
- •Стандартний клас stack.
- •Створення і використання шаблонів функцій та класів.
- •Стандартна бібліотека шаблонів (stl)
- •Доступність методів класу.
- •Конструктор та деструктор класів.
- •Наслідування класів.
- •Використання просторів імен.
- •Шаблони функцій.
- •Шаблони класів.
- •Алгоритми стандартної бібліотеки stl.
- •Динамічні структури типу стек.
- •Динамічні структури типу однонаправлений список.
- •Динамічні структури типу двонаправлений список.
- •Сортування масивів із використанням вказівників.
Функція для роботи з файлами.
Для работы с файлами необходимо подключить заголовочный файл <fstream>.
Например, необходимо создать текстовый файл и записать в него строку Работа с файлами в С++. Для этого необходимо проделать следующие шаги:
создать объект класса ofstream;
cвязать объект класса с файлом, в который будет производиться запись;
записать строку в файл;
закрыть файл.
Назовём объект – fout, Вот что получится:
|
ofstream fout; |
Для чего нам объект? Объект необходим, чтобы можно было выполнять запись в файл. Уже объект создан, но не связан с файлом, в который нужно записать строку.
|
fout.open("cppstudio.txt"); // связываем объект с файлом |
Через операцию точка получаем доступ к методу класса open(), в круглых скобочках которого указываем имя файла. Указанный файл будет создан в текущей директории с программой. Если файл с таким именем существует, то существующий файл будет заменен новым. Итак, файл открыт, осталось записать в него нужную строку. Делается это так:
|
fout << "Работа с файлами в С++"; // запись строки в файл |
Используя операцию передачи в поток совместно с объектом fout строка Работа с файлами в С++ записывается в файл. Так как больше нет необходимости изменять содержимое файла, его нужно закрыть, то есть отделить объект от файла.
|
fout.close(); // закрываем файл |
Итог – создан файл со строкой Работа с файлами в С++.
Передача аргументів у функцію.
У мові С++ є два способи передачі аргументів у функцію: за значенням і за посиланням. За замовчуванням, якщо аргументом є не масив, застосовується перший спосіб. Для цього створюється копія значення аргументу, що привласнюється формальному параметру. Всі операції, виконані усередині функції, стосуються лише копії аргументу і не впливають на оригінал, що існує в модулі, що здійснює виклик.
Проілюструємо сказане наступною програмою.
Передача аргументів за значенням
#include <iostream.h>
int twice(int);
int main()
{
int actual=1, result;
result = twice(actual);
cout << actual;
return 0;
}
int twice(int formal)
{
return 2*formal;
}
Функція twice() подвоює свій формальний параметр formal, не змінюючи аргумент actual, що після виклику зберігає своє колишнє значення.
Значення, яке повертає функція.
Функції розподіляються на дві категорії. Вони можуть або повертати деяке значення, або не повертати нічого. Для повернення обчисленого значення існує два механізми. По-перше, функція може повернути значення, виконавши оператор return, що негайно передасть керування в модуль виклику одночасно з тимчасовою змінною, що містить результат обчислень. По-друге, функція може привласнити обчислене значення параметру, переданому за посиланням. У цьому випадку в модулі виклику можна скористатися результатами побічного ефекту.
Якщо функція не повертає ніяких значень, перед її ім'ям у прототипі і заголовку необхідно поставити ключове слово void. Необхідно підкреслити наступне: незважаючи на те що ключове слово void стоїть на місці типу значення, що повертається, це зовсім не означає, що повертається деяке значення “порожнього типу”. Навпаки, така функція нічого не повертає, і її виконання припиняється, як тільки потік керування досягає фігурної дужки, що закриває її тіло. Утім, з такої функції можна просто “катапультуватися” за допомогою оператора return, не вказавши ніякого значення, що повертається. По суті, така функція є процедурою.
Посилання на аргументи функції.
За допомогою оператора & можна задати передачу аргументів функції по посиланню, а не по значенню. Наприклад:
void increment(int &variable_reference)
{ variable_reference++; }
Оскільки параметр variable_reference визначений як посилання, його адреса привласнюється адресі змінної i при виклику функції increment (). Остання виконує приріст значення параметра.
Перезавантаження унарних операцій.
Перезавантаження бінарних операцій.
Перезавантаження функцій.
У C++ можна використовувати однакові імена для декількох функцій. Звичайно різні функції мають різні імена, але іноді вимагається, щоб одна і та ж функція виконувала схожі дії над об'єктами різних типів. В цьому випадку є зміст визначити декілька функцій з однаковим ім'ям, але різним тілом. Такі функції повинні мати відмінні набори аргументів, щоб компілятор міг розрізняти їх. Не дивлячись на те, що різні функції мають одне ім'я, по типу аргументів компілятор легко зможе визначити, яку версію функції слід викликати у кожному конкретному випадку