Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22

В каких случаях в C++ принято прибегать к использованию шаблонов?

24.12.2018, 15:47. Показов 890. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В каких случаях в C++ принято прибегать к использованию шаблонов? В метод или функцию я могу передать аргументы как через шаблонные параметры - в условых скобках, так и через обычные параметры. В каких случаях и что принято использовать?

Добавлено через 10 часов 13 минут
Хорошо. Давайте на примерах. В каких случаях передают параметры в функцию или метод как в случае A, а в каких как в случае B?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "pch.h"
#include <iostream>
 
template<int arg1, int arg2>
void P() // <-- Случай A.
{
}
 
void P(int arg1, int arg2) // <-- Случай B.
{
}
 
int main()
{
    P<1, 2>();
    P(1, 2);
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.12.2018, 15:47
Ответы с готовыми решениями:

В каких случаях Вы используете экспорт шаблонов и для чего?
И в каких книгах подробно описано использование экспорта шаблонов в C++.

В каких случаях использовать обращение self::, а в каких $this. В чём разница между ними?
Привет! Сейчас пишу регистрацию в стиле ооп. Пишу функцию __construct в классе Registration class Registration{ protected $Name; ...

В каких случаях надо создавать индексы к полям, а в каких - нет?
Не могу понять, в каком случае надо создовать индексы к полям а вкаких нет. если надо, то в каком случае индекс надо создать для каждого...

1
 Аватар для eva2326
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,519
24.12.2018, 16:30
C++
1
2
P<1, 2>(); // <--- константа времени компиляции
   P(1, 2);  // <--- аргументы функции вычисляются времени выполнения
Константа времени компиляции - это число, которое известно уже на стадии компиляции.

Константа времени выполнения - число, значение которого вычисляется времени выполнения.
Технически, могут быть ситуации, когда его невозможно вычислить заранее.

пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include<iostream>
#include <cstdlib>
#include <ctime> 
 
const size_t v = 100;
 
template<class T, size_t N>
struct array
{
   T arr[N];
   
   array()
 {
    for(size_t n = 0; n<N; ++n)
       arr[n] = n;
   }
   
   void view(const size_t n)const
   {
       std::cout << "element[" << n << "] = " << arr[n] << std::endl;
   }
};
 
int main()
{
srand (time(NULL));
 array<int, v> sample; // v известно времени компиляции
   
   // зависит от случайного числа
   // и не известно на стадии компиляции
   const size_t el = rand() % 10 + 1;
   
   sample.view(el);
   
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.12.2018, 16:30
Помогаю со студенческими работами здесь

В каких случаях нужно создавать динамические переменные, а в каких статические?
такой же вопрос и по массивам ! Объясните пожалуйста !

В каких случаях создаётся имя в кодировке utf-16 файла или папки, а в каких нет?
Друзья! Вынужден ковыряться со сторонними файлами, где без кодировки utf-16 не обойтись, век бы её не знал. Хотелось бы выяснить принцип...

Объясните в каких случаях используеться char, а в каких string?
Зачем(в каких случаях) использовать char, и char *... Зачем(в каких случаях) использовать string...

В каких случаях необходимо использовать equals, а в каких ==
Пожалуйста, можете привести пример, каких случаях необходимо использовать equals, а в каких == ?

В каких случаях лучше Collection.parallelStream(), а в каких Collection.stream()?
я так понимаю параллелить лучше, если манипуляция с данными ресурснозатратна.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru