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

Правила іменування

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

Хороші та погані іменування

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

main.cpp

main.cpp

1234
template<typename T> // <- Actually a good naming void myTemplate() { // Function implementation }

Можливо, ви замислювалися, чому T вважається кращим вибором імені, ніж Type, хоча другий варіант здається зрозумілішим. Причина проста: T — це загальноприйнята конвенція, що означає Type. Вона одразу вказує, що параметр шаблону представляє тип, і є знайомою більшості розробників. Також часто використовують U або V, якщо T вже використано.

Описові імена

Коли у вас є кілька параметрів шаблону, і їхнє призначення не є очевидним, рекомендується використовувати описові імена з префіксом T.

main.cpp

main.cpp

1234
template<typename TKey, typename TValue> void map() { // Function implementation }

Якщо переглянути документацію до деяких шаблонів, можна помітити, що деякі розробники додають підкреслення (_) перед параметром типу для більшої виразності. Ви також можете використовувати цю практику. Однак найважливіше — дотримуватися послідовності у всьому коді. Оберіть стиль іменування, який вам підходить, і дотримуйтеся його.

class та typename

І class, і typename використовуються у визначеннях шаблонів. У цьому контексті вони взаємозамінні.

main.cpp

main.cpp

12345
template <class T> void first_template(T param) { /* ... */ } template <typename T> void second_template(T param) { /* ... */ }

Історично ключове слово class було єдиним варіантом для визначення параметрів шаблону. Тому ви можете зустріти це ключове слово в старому коді. Однак при створенні шаблонів часто віддають перевагу ключовому слову typename через його зрозумілість, тому ми будемо використовувати саме його.

question mark

Що можна підставити у пропуски?

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

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

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