Новий урок!
"Урок №183. Шаблони класів" - https://acode.com.ua/urok-183-shablony-klasiv/
Рубрика "Уроки по С++"
"Урок №183. Шаблони класів" - https://acode.com.ua/urok-183-shablony-klasiv/
Рубрика "Уроки по С++"
aCode
Шаблони класів в С++ / aCode
На попередніх уроках ми дізналися, як за допомогою шаблонів функцій зробити одну версію функції, яка працюватиме з різними типами даних. Хоча це значний крок на шляху до узагальненого програмування, це не вирішує всіх наших проблем. Розглянемо приклад такої…
Новий урок!
"Урок №184. Параметр non-type в шаблоні" - https://acode.com.ua/urok-184-parametr-non-type-v-shabloni/
Рубрика "Уроки по С++"
"Урок №184. Параметр non-type в шаблоні" - https://acode.com.ua/urok-184-parametr-non-type-v-shabloni/
Рубрика "Уроки по С++"
aCode
Параметр non-type в шаблоні в С++ / Уроки по С++ / aCode
На попередніх уроках ми дізналися, як використовувати параметр типу в шаблоні для створення функцій і класів, які не залежать від певного типу даних. Однак параметр типу не є єдиним параметром, який може мати шаблон. Шаблони класів і шаблони функцій можуть…
Новий урок!
"Урок №185. Явна спеціалізація шаблону функції" - https://acode.com.ua/urok-185-yavna-spetsializatsiya-shablonu-funktsiyi/
Рубрика "Уроки по С++"
"Урок №185. Явна спеціалізація шаблону функції" - https://acode.com.ua/urok-185-yavna-spetsializatsiya-shablonu-funktsiyi/
Рубрика "Уроки по С++"
aCode
Явна спеціалізація шаблону функції в С++ / aCode
При створенні екземпляра шаблону функції для певного типу даних компілятор копіює шаблон функції і замінює параметр типу шаблону функції на фактичний (переданий) тип даних. Це означає, що всі екземпляри функції мають одну реалізацію, але різні типи даних.…
Новий урок!
"Урок №186. Явна спеціалізація шаблону класу" - https://acode.com.ua/urok-186-yavna-spetsializatsiya-shablonu-klasu/
Рубрика "Уроки по С++"
"Урок №186. Явна спеціалізація шаблону класу" - https://acode.com.ua/urok-186-yavna-spetsializatsiya-shablonu-klasu/
Рубрика "Уроки по С++"
aCode
Явна спеціалізація шаблону класу в С++ / aCode
На попередньому уроці ми говорили про те, як спеціалізувати шаблон функції, щоб при роботі з одним типом даних була одна реалізація функції, а при роботі з іншим типом даних — інша реалізація функції. Виявляється, ми можемо спеціалізувати не тільки шаблони…
Новий урок!
"Урок №187. Часткова спеціалізація шаблону" - https://acode.com.ua/urok-187-chastkova-spetsializatsiya-shablonu/
Рубрика "Уроки по С++"
"Урок №187. Часткова спеціалізація шаблону" - https://acode.com.ua/urok-187-chastkova-spetsializatsiya-shablonu/
Рубрика "Уроки по С++"
aCode
Часткова спеціалізація шаблону в С++ / aCode
На цьому уроці ми розглянемо, що таке часткова спеціалізація шаблону в мові С++, як вона використовується і які є нюанси.
Новий урок!
"Урок №188. Часткова спеціалізація шаблонів і Вказівники" - https://acode.com.ua/urok-188-chastkova-spetsializatsiya-shabloniv-i-vkazivnyky/
Рубрика "Уроки по С++"
"Урок №188. Часткова спеціалізація шаблонів і Вказівники" - https://acode.com.ua/urok-188-chastkova-spetsializatsiya-shabloniv-i-vkazivnyky/
Рубрика "Уроки по С++"
aCode
Часткова спеціалізація шаблонів і Вказівники в С++ / aCode
Використання часткової спеціалізації шаблону класу для роботи з типами вказівників дозволяє передбачити всі можливі варіанти використання коду на практиці.
Новий урок!
"Розділ №13. Підсумковий тест" - https://acode.com.ua/rozdil-13-pidsumkovyj-test/
Рубрика "Уроки по С++"
"Розділ №13. Підсумковий тест" - https://acode.com.ua/rozdil-13-pidsumkovyj-test/
Рубрика "Уроки по С++"
aCode
Розділ №13. Підсумковий тест / Уроки по С++ / aCode
Ще один розділ позаду. Пора закріпити пройдений матеріал.
Новий урок!
"Урок №189. Винятки. Навіщо вони потрібні?" - https://acode.com.ua/urok-189-vynyatky-navishho-vony-potribni/
Рубрика "Уроки по С++"
"Урок №189. Винятки. Навіщо вони потрібні?" - https://acode.com.ua/urok-189-vynyatky-navishho-vony-potribni/
Рубрика "Уроки по С++"
aCode
Винятки в С++. Навіщо вони потрібні? / aCode
Ми вже раніше говорили про механізми обробки помилок в мові С++, такі як cerr(), exit() і assert(). Однак ми не встигли поговорити про ще одну дуже важливу тему — "Винятки в мові С++". Зараз ми це виправимо.
Новий урок!
"Урок №190. Обробка винятків. Оператори throw, try і catch" - https://acode.com.ua/urok-190-obrobka-vynyatkiv-operatory-throw-try-i-catch/
Рубрика "Уроки по С++"
"Урок №190. Обробка винятків. Оператори throw, try і catch" - https://acode.com.ua/urok-190-obrobka-vynyatkiv-operatory-throw-try-i-catch/
Рубрика "Уроки по С++"
aCode
Обробка винятків. Оператори throw, try і catch в С++ / aCode
На попередньому уроці ми говорили про необхідність і користь винятків. Винятки в мові C++ реалізовані за допомогою трьох ключових слів, які працюють в зв'язці один з одним: throw, try і catch.
Новий урок!
"Урок №191. Винятки, Функції і Розкручування стеку" - https://acode.com.ua/urok-191-vynyatky-funktsiyi-i-rozkruchuvannya-steku/
Рубрика "Уроки по С++"
"Урок №191. Винятки, Функції і Розкручування стеку" - https://acode.com.ua/urok-191-vynyatky-funktsiyi-i-rozkruchuvannya-steku/
Рубрика "Уроки по С++"
aCode
Винятки, Функції і Розкручування стеку в С++ / aCode
На попередньому уроці ми розглянули, як, використовуючи ключові слова throw, try і catch, обробляти винятки. На цьому уроці ми розглянемо, як взаємодіють функції під час обробки винятків в мові С++.
Новий урок!
"Урок №192. Неспіймані винятки і обробники catch-all" - https://acode.com.ua/urok-192-nespijmani-vynyatky-i-obrobnyky-catch-all/
Рубрика "Уроки по С++"
"Урок №192. Неспіймані винятки і обробники catch-all" - https://acode.com.ua/urok-192-nespijmani-vynyatky-i-obrobnyky-catch-all/
Рубрика "Уроки по С++"
aCode
Неспіймані винятки і обробники catch-all в С++ / aCode
Мова C++ надає нам механізм виявлення/обробки всіх типів винятків — обробник catch-all. Обробник catch-all працює так само, як і звичайний блок catch, за винятком того, що замість обробки винятків певного типу даних, він використовує еліпсис (...) в якості…
Новий урок!
"Урок №193. Класи-винятки і Спадкування" - https://acode.com.ua/urok-193-klasy-vynyatky-i-spadkuvannya/
Рубрика "Уроки по С++"
"Урок №193. Класи-винятки і Спадкування" - https://acode.com.ua/urok-193-klasy-vynyatky-i-spadkuvannya/
Рубрика "Уроки по С++"
aCode
Класи-винятки і Спадкування в С++ / aCode
До цього моменту ми розглядали використання винятків тільки в звичайних функціях, які не є методами класу. Проте винятки однаково корисні і в методах, і навіть в перевантаженні операторів.
Новий урок!
"Урок №194. Повторна генерація винятків" - https://acode.com.ua/urok-194-povtorna-generatsiya-vynyatkiv/
Рубрика "Уроки по С++"
"Урок №194. Повторна генерація винятків" - https://acode.com.ua/urok-194-povtorna-generatsiya-vynyatkiv/
Рубрика "Уроки по С++"
aCode
Повторна генерація винятків в С++ / aCode
Іноді ви можете зіткнутися з ситуацією, коли потрібно зловити виняток, але обробляти його в даний момент часу не потрібно (або немає можливості). Наприклад, ви можете записати помилку в лог-файл, а потім передати її назад в caller для виконання фактичної…
Новий урок!
"Урок №195. Функціональний try-блок" - https://acode.com.ua/urok-195-funktsionalnyj-try-blok/
Рубрика "Уроки по С++"
"Урок №195. Функціональний try-блок" - https://acode.com.ua/urok-195-funktsionalnyj-try-blok/
Рубрика "Уроки по С++"
aCode
Функціональний try-блок в С++ / aCode
На цьому уроці ми розглянемо, що таке функціональний try-блок в мові С++, як його використовувати і які є нюанси.
Новий урок!
"Урок №196. Нюанси та недоліки використання винятків" - https://acode.com.ua/urok-196-nyuansy-ta-nedoliky-vykorystannya-vynyatkiv/
Рубрика "Уроки по С++"
"Урок №196. Нюанси та недоліки використання винятків" - https://acode.com.ua/urok-196-nyuansy-ta-nedoliky-vykorystannya-vynyatkiv/
Рубрика "Уроки по С++"
aCode
Нюанси та недоліки використання винятків в С++ / aCode
Крім переваг, винятки мають і недоліки. Цей урок не призначений бути вичерпним в плані розбору недоліків винятків, він призначений лише вказати на деякі основні проблеми, які можуть виникнути при використанні винятків (або при прийнятті рішення про їх використання).
Новий урок!
"Розділ №14. Підсумковий тест" - https://acode.com.ua/rozdil-14-pidsumkovyj-test/
Рубрика "Уроки по С++"
"Розділ №14. Підсумковий тест" - https://acode.com.ua/rozdil-14-pidsumkovyj-test/
Рубрика "Уроки по С++"
aCode
Розділ №14. Підсумковий тест / Уроки по С++ / aCode
Ось ми і пройшли розділ «Винятки в мові С++», пора закріпити отримані знання.
Новий урок!
"Урок №197. Розумні вказівники і Семантика переміщення" - https://acode.com.ua/urok-197-rozumni-vkazivnyky-i-semantyka-peremishhennya/
Рубрика "Уроки по С++"
"Урок №197. Розумні вказівники і Семантика переміщення" - https://acode.com.ua/urok-197-rozumni-vkazivnyky-i-semantyka-peremishhennya/
Рубрика "Уроки по С++"
aCode
Розумні вказівники і Семантика переміщення в С++ / aCode
Розумний вказівник — це клас, призначений для управління динамічно виділеною пам'яттю і забезпечення звільнення (видалення) виділеної пам'яті при виході об'єкта цього класу з області видимості.
Новий урок!
"Урок №198. Посилання r-value" - https://acode.com.ua/urok-198-posylannya-r-value/
Рубрика "Уроки по С++"
"Урок №198. Посилання r-value" - https://acode.com.ua/urok-198-posylannya-r-value/
Рубрика "Уроки по С++"
aCode
Посилання r-value в С++ / aCode
Ми вже раніше розглядали l-values і r-values. Тоді ми говорили, що вам не потрібно занадто турбуватися про них. І це було правдою до версії C++11. Зараз же, для розуміння семантики переміщення, нам потрібно переглянути цю тему.
Новий урок!
"Урок №199. Конструктор переміщення і Оператор присвоювання переміщенням" - https://acode.com.ua/urok-199-konstruktor-peremishhennya-i-operator-prysvoyuvannya-peremishhennyam/
Рубрика "Уроки по С++"
"Урок №199. Конструктор переміщення і Оператор присвоювання переміщенням" - https://acode.com.ua/urok-199-konstruktor-peremishhennya-i-operator-prysvoyuvannya-peremishhennyam/
Рубрика "Уроки по С++"
aCode
Конструктор переміщення і Оператор присвоювання переміщенням в С++ / aCode
Визначення конструктора переміщення і оператора присвоювання переміщенням виконується аналогічно визначенню конструктора копіювання і оператора присвоювання копіюванням. Однак, в той час як функції з копіюванням приймають в якості параметра константне посилання…
Новий урок!
"Урок №200. Функція std::move()" - https://acode.com.ua/urok-200-funktsiya-std-move/
Рубрика "Уроки по С++"
"Урок №200. Функція std::move()" - https://acode.com.ua/urok-200-funktsiya-std-move/
Рубрика "Уроки по С++"
aCode
Функція std::move() в С++ / aCode
Функція std::move() — це стандартна бібліотечна функція, яка конвертує переданий аргумент в r-value. Ми можемо передати l-value в функцію std::move(), і std::move() поверне нам посилання r-value. Для роботи з std::move() потрібно підключити заголовок utility.
Новий урок!
"Урок №201. Розумний вказівник std::unique_ptr" - https://acode.com.ua/urok-201-rozumnyj-vkazivnyk-std-unique_ptr/
Рубрика "Уроки по С++"
"Урок №201. Розумний вказівник std::unique_ptr" - https://acode.com.ua/urok-201-rozumnyj-vkazivnyk-std-unique_ptr/
Рубрика "Уроки по С++"
aCode
Розумний вказівник std::unique_ptr в С++ / aCode
Розумний вказівник std::unique_ptr є заміною std::auto_ptr в C++11. Ви повинні використовувати саме його для управління будь-яким динамічно виділеним об'єктом/ресурсом, але за умови, що std::unique_ptr повністю володіє переданим йому об'єктом, а не ділиться…