Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Alvin Seville
334 / 266 / 132
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
1

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

24.12.2018, 15:47. Показов 561. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2018, 15:47
Ответы с готовыми решениями:

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

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

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

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

1
885 / 341 / 78
Регистрация: 17.05.2015
Сообщений: 1,096
24.12.2018, 16:30 2
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2018, 16:30

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru