Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 22.11.2009, 22:49   #1
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
Репутация: -14
По умолчанию Шаблонный класс

Ребята, объясните пожалуйста, как работает шаблонный класс, своими словами, на скромном маленьком примерчике. Заранее благодарю.
Syltan вне форума   Ответить с цитированием
Старый 22.11.2009, 23:23   #2
netrino
Профессионал
 
Аватар для netrino
 
Регистрация: 15.07.2008
Адрес: г. Киев, Украина
Сообщений: 1,933
Репутация: 736
По умолчанию

Точно так же как и шаблонная функция:
Код:

template<class T>
class Array {
    T* pointer;
public:
    Array(size_t N) {
        pointer = new T[N];
    }

    T& operator[] (size_t index) {
        return pointer[index];
    }
};

...
// при подстановке значения, создаётся класс, где везде вместо T будет подставленное значение
Array<int>    a(80); // Создаст массив из 80 целых чисел
Array<char>  c(20); // создаст массив из 20 символов

netrino вне форума   Ответить с цитированием
Старый 22.11.2009, 23:23   #3
Гром
Профессионал
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
Репутация: 473

icq: 482-373-277
По умолчанию

Ну это вроде бы класс, который может содержать в себе данные различных типов (меняющихся от специализации к специализации), но при этом единообразно работающий с этими данными, какого бы типа они ни были. Стандартные контейнеры - типичный пример шаблонных классов. Неважно, какого типа данные, главное, что хранится некий, скажем, список данных одного типа, над которым выполняются стандартные операции для списка - push, pop и т.п.
Соответственно, для типов, которые могут быть заданы в качестве аргументов, должен быть единообразный интерфейс, который можно было бы использовать для выполнения операций общего вида. Например, для push, полагаю, используются конструкторы копирования.
Ну как-то так...
__________________
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ . Класс Ануар56 Помощь студентам 8 23.04.2009 19:41
Шаблонный односвязный список _ares_ Общие вопросы C/C++ 4 06.12.2008 22:35
Класс Юлёк Фриланс 6 15.06.2008 15:00
класс TTypedComObject toledo Общие вопросы Delphi 1 17.04.2008 01:32


17:13.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru