Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Базовий синтаксис шаблонів у C++ | Створення Першого Шаблону
Шаблони C++

Базовий синтаксис шаблонів у C++

Свайпніть щоб показати меню

Створення шаблону насправді досить просте, і це одна з найлегших частин їх використання. Для початку потрібно створити або функцію, або клас. Ми почнемо з функції.

main.cpp

main.cpp

123456
void MyFirstTemplate() { } int main() { MyFirstTemplate(); }

Як бачите, це дуже проста функція, яка наразі нічого не робить. Її можна легко викликати всередині функції main. Ваше завдання зараз — перетворити її на шаблон.

template.h

template.h

123456789101112
// To create a template, you need to add code above the function or class // Start with the keyword `template` to indicate you're defining a template // template // Add angle brackets `<>`, this is list of the parameters for template // template < > // Inside of it has to be keyword `typename` and the name of it // template <typename Name> template <typename Name> void MyFirstTemplate() { }

Тепер додамо функціональність, наприклад, виведення повідомлення. Викличте її у функції main, щоб побачити результат у дії.

main.cpp

main.cpp

123456789101112
#include <iostream> template<typename Name> void MyFirstTemplate() { std::cout << "c<>definity" << std::endl; } int main() { MyFirstTemplate(); }

Як видно, виникає помилка, якщо спробувати викликати її як звичайну функцію. Це відбувається тому, що це вже не просто звичайна функція. На цьому етапі параметр шаблону, вказаний у кутових дужках після ключового слова template, стає обов'язковим.

main.cpp

main.cpp

12345678910111213
#include <iostream> // This essentioally creates an alias for a type you will use template<typename Name> // In this case the name of the type is Name void MyFirstTemplate() { std::cout << "c<>definity" << std::endl; } int main() { // In order to call the template function properly // You need to specify any type inside the brackets MyFirstTemplate<void>(); // This tells the template to use void as the type for Name }
Note
Примітка

У цьому прикладі не має значення, який тип ви вкажете, тому можна змінити void на будь-який бажаний тип. Однак вказання типу є обов'язковим.

Для шаблону функції MyFirstTemplate не обов'язково вказувати ім'я параметра типу. Ви можете видалити Name, і все одно все працюватиме, оскільки параметр типу не використовується всередині функції.

question mark

Який правильний синтаксис оголошення шаблонної функції?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 2

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 1. Розділ 2
some-alt