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

Явное создание экземпляра класса и явная специализация шаблона класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача на массивы и сумму http://www.cyberforum.ru/cpp-beginners/thread1170700.html
Вопрос по условию задачи (с самим решением проблем нет) Даны массивы l1, ... , l15 ; m1, ... , m8 . Определить \huge {C}_{i}=\frac{\sum_{i=1}^{15}\left({l}_{i}-{m}_{1} \right)}{{l}_{i}} Разве может один и тот же индекс і использоваться и как параметр внешнего цикла (как индекс элемента массива), и как параметр внутренней суммы. Ведь это же абсурд! Я считаю, что параметром (счетчиком) суммы...
C++ Поиск и замена файла Здравствуйте! Никак не могу реализовать функцию для своей программы. Функция производит проверяет наличие файла(ов) в первом заданном каталоге и затем ищет его(их) во втором каталоге - если есть, то производит замену. Если не сложно, пожалуйста, помогите http://www.cyberforum.ru/cpp-beginners/thread1170689.html
C++ Оболочка для программы
Вот пишу программу на с++ и интересует, как создать графическую оболочку для программы? Надо сделать окошко для ввода текста двух переменных и кнопку запустить и как вывести? С этим никогда не связывался, а сейчас вот понадобилось. Благодарю за помощь. Среда написания программы visual studio 2012
Бинарное дерево поиска.Вывести слова с тремя гласными C++
Доброго времени суток. Помогите с задачей пожалуйста. Вот условие: В текстовом файле содержится произвольный текст. Построить на его основе бинарное дерево поиска, каждый узел которого содержит слово. Вывести на печать те слова, в которых встречаются три и более гласных букв латинского алфавита.
C++ случайные числа. Ошибка http://www.cyberforum.ru/cpp-beginners/thread1170670.html
srand(time(0)); mas= new int *; for (int i=0;i<m;i++) mas=new int; for (int i=0;i<n;i++) for (int j=0;j<m;j++) mas= (rand()%20)-10;
C++ Разбиение программы на модули! Есть большая программа #include <iostream> #include <vector> using namespace std; class mes // AbstractProductA { public: char *result; char stroka; }; подробнее

Показать сообщение отдельно
andrejap
13 / 13 / 1
Регистрация: 21.04.2013
Сообщений: 245
10.05.2014, 10:55  [ТС]     Явное создание экземпляра класса и явная специализация шаблона класса
zss, дело в том, что вот у меня в учебнике (С. Прата, "Язык программирования C++") написано:
"Для шаблонов классов, как и шаблонов функций, возможны неявные создания экземпляров, явные создания экземпляров и явные специализации, которые все вместе также называются специализациями. Шаблон описывает класс через обобщенный тип, а специализация - это объявление класса, сгенерированное для конкретного типа."

Да, то есть как Вы говорите, в таком случае для:
C++
1
2
template<typename T, typename V>
class Gcl { T val; V obj; };
неявным созданием экземпляра будет использование объявления:
C++
1
Gcl<char*, bool> tree;
явной специализацией определение:
C++
1
2
3
4
template <> class Gcl<std::string, bool>
{
//...
};
теперь объявление
C++
1
Gcl<std::string, bool> tree_n;
будет использовать класс сгенерированный этой специализацией.

Но что же такое явное создание экземпляра? В книге приведен пример:
C++
1
template class ArrayTP<string, 100>;
"В этом случае компилятор генерирует определение класса, включая определения методов, даже если не создаются или упоминаются объекты класса. ..."
Для чего эта вещь используется?
 
Текущее время: 07:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru