|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.09.2011, 17:32 | #1 |
Пользователь
Регистрация: 08.09.2011
Сообщений: 18
|
Специализация шаблона
День добрый,товарищи программисты!!!
Вопрос такой: как специализировать шаблон так,чтобы в качестве аргументов он принимал данные типов,производных от определенного базового класса. Наглядно эту задачу можно представить так:шаблон класса,который принимает элементы любого типа,производного от класса MyBase(к примеру)! Заранее спасибо |
08.09.2011, 17:41 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
Передавайте указатель на базовый в качестве параметра.
П.С. Концептов пока нет. |
08.09.2011, 18:01 | #3 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
1) Зачем тогда концепты, если есть указатели на базовый класс?
2) Где почитать про концепты? Видел однажды упоминание на Хабре, но другой инфы не нашёл. |
08.09.2011, 18:46 | #4 |
Пользователь
Регистрация: 08.09.2011
Сообщений: 18
|
Т.е. сделать такую специализацию:
template<> class A<MyBase*>? Но если,например,DMyBase производный класс от MyBase, тогда A<MyBase*> и A<DMyBase*> будут считаться разными множествами... Или я не в том направлении мыслю?! |
08.09.2011, 20:55 | #5 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Bubaleh
Вопрос такой: как специализировать шаблон так,чтобы в качестве аргументов он принимал данные типов,производных от определенного базового класса. Никакой специализации для этого не нужно. boost::is_base_of / boost::is_base_and_derived + static_assert. Если второе не поддерживается компилятором, тогда BOOST_MPL_ASSERT
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
09.09.2011, 12:01 | #6 |
Пользователь
Регистрация: 08.09.2011
Сообщений: 18
|
Я просто думал,что такая возможность все-таки как-то была предусмотрена средствами самого языка!
Недаром же у Страуструпа даже задача такая есть (в принципе,из-за нее-то вопрос и возник): "Напишите шаблон класса односвязного списка, который принимает элементы любого типа, производного от класса Link, имеющего всю информацию, необходимую для связывания элементов..." |
09.09.2011, 12:01 | #7 |
Пользователь
Регистрация: 08.09.2011
Сообщений: 18
|
Я просто думал,что такая возможность все-таки как-то была предусмотрена средствами самого языка!
Недаром же у Страуструпа даже задача такая есть (в принципе,из-за нее-то вопрос и возник): "Напишите шаблон класса односвязного списка, который принимает элементы любого типа, производного от класса Link, имеющего всю информацию, необходимую для связывания элементов..." |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
копирование шаблона | Serg68super | Microsoft Office Word | 2 | 10.08.2011 17:07 |
Шаблоны класса и специализация | РагнаР | Общие вопросы C/C++ | 9 | 13.03.2011 19:29 |
Проблема шаблона в IE | Cvieri | HTML и CSS | 9 | 08.07.2009 18:21 |
C++ Специализация шаблона | opensuse2008 | Помощь студентам | 7 | 07.06.2009 18:00 |