Форум программистов, компьютерный форум CyberForum.ru

Что такое шаблоны в C++? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Какая у буста лицензия? http://www.cyberforum.ru/cpp-beginners/thread858962.html
Если я использую boost, должен ли я буду весь проект распространять бесплатно и открыть исходный текст?
C++ Нужна из текстового файла с целыми числами найти минимальное и вывести его на экран Нужно из текстового файла с целыми числами найти минимальное и вывести его на экран http://www.cyberforum.ru/cpp-beginners/thread858941.html
Сохранение экрана консоли C++
Допустим, что то есть на экране размером 80x50 и я хочу записать все что есть на экране в чар массив, но не знаю как это сделать. Подскажите как будет правильно это сделать. char mas_screen; for (int i = 1; i < 51 ; i++) { for (int j=1; j < 81; j++) { gotoxy(i,j); cin>>mas_screen; } }
C++ Из файла прочитать множество произвольных целых чисел,упорядочить и вывести в поле вывода
По идее должно получится нечто типа: (но нужна форма и использование openFileDialog1 saveFileDialog1) #include <iostream> #include <time.h> #include <fstream> #include <math.h> using namespace std; int main() { int chislo = 0; int x=0,j,a;
C++ Длинная арифметика http://www.cyberforum.ru/cpp-beginners/thread858903.html
Длинная арифметика — это набор программных средств (структуры данных и алгоритмы), которые позволяют работать с числами гораздо больших величин, чем это позволяют стандартные типы данных. Посоветуйте книгу по этой теме где нормально пояснено арифметические операции с использованием длинной арифметики.
C++ Массив и подмассив (определить, является ли второй массив подмассивом первого) Поставлена следующая задача: Ввод из: input.txt Вывод в: output.txt Дано два одномерных массива. Один из N элементов, второй из R элементов. Необходимо определить, является ли второй массив подмассивом первого. Если да, то вывести номер позиции в первом массиве, начиная с которой начинается второй массив, в противном случае вывести слово «NO». Входные данные: В первой строке дано... подробнее

Показать сообщение отдельно
Убежденный
Системный программист
 Аватар для Убежденный
14219 / 6234 / 988
Регистрация: 02.05.2013
Сообщений: 10,392
Завершенные тесты: 1
12.05.2013, 11:04     Что такое шаблоны в C++?
Цитата Сообщение от taras atavin Посмотреть сообщение
Нельзя инстацировать сам шаблон, так же как нельзя инстанцировать и абстрактный класс. Инстацирование - это создание экземпляра класса, а шаблон - это только некие правила создания класса, но не сам класс. Инстацировать можно только конкретный класс, а в случае шаблона получить его можно только путём специализации. Так что это ты путаешь шаблон с макросом. Специализация шаблона выполняет подстановку фактического параметра и при использовании макроса выполняется подстановка.
Давайте обратимся к Стандарту (2003):
14.7 Template instantiation and specialization

1. The act of instantiating a function, a class, a member of a class template or a
member template is referred to as template instantiation.
Инстанцирование шаблона - это создание функции/класса/члена, а не объекта.
Хотя инстанцирование может идти бок о бок с созданием объекта.
Например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
template <typename T_Type>
class foo
{
};
 
void some_func(foo<bool> const &Foo); // Инстанцирование шаблона.
 
foo<int> Foo; // Инстанцирование шаблона и создание объекта. 
 
// А это специализация:
 
template <>
class foo<char>
{
public:
    enum {is_char = 1};
};
В той же главе сказано:
14.7

4. ...
A specialization is a class, function, or class member that is either
instantiated or explicitly specialized (14.7.3).
Согласно этому определению, инстанцированный шаблон является специализацией.
 
Текущее время: 09:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru