Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Шаблоны и виртуальные функции / 11 сообщений из 11, страница 1 из 1
08.11.2006, 11:07
    #34111297
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шаблоны и виртуальные функции
Как отнаследоваться от класса шаблона?
То есть иметь одни тип, который будет отнаследован
от любого из N типов полученных в результате параметризации.

Другими словами нужно скрыть параметризацию в классе потомке
чтобы можно было вызывать виртуальные функции через указатель на базовый класс не зависимо от значения параметра.

Если поставить задачу более конкренто, нужно хранить массив
указателей на на обьекты порожденные от одного шаблона,
при этом параметры могут быть разные, а соответственно и типы.


Приветствуется ссылки на литературу , а лучше инет, где расписаны
принципы.

Спасибо.
...
Рейтинг: 0 / 0
08.11.2006, 11:18
    #34111352
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шаблоны и виртуальные функции
Так отнаследоваться или хранить объекты?

Может возможно хранение указаетелей типа нешаблонного интерфейса шаблонов?
...
Рейтинг: 0 / 0
08.11.2006, 11:20
    #34111364
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шаблоны и виртуальные функции
эвана чего захотел! не выйдет! рассказывай про задачку может чего и придумается
...
Рейтинг: 0 / 0
08.11.2006, 11:28
    #34111407
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шаблоны и виртуальные функции
AkhТак отнаследоваться или хранить объекты?

Может возможно хранение указаетелей типа нешаблонного интерфейса шаблонов?

Да я как раз это и имел ввиду.
...
Рейтинг: 0 / 0
08.11.2006, 11:34
    #34111436
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шаблоны и виртуальные функции
blindedэвана чего захотел! не выйдет! рассказывай про задачку может чего и придумается

Эту задачу я решил пару лет назад, полностью отказавшись от использования собственных шаблонов.

Сейчас пришло время переосмысления знаний и опыта, вот вспомнил.

Навеяло темой Akh о шаблонах.
...
Рейтинг: 0 / 0
08.11.2006, 11:36
    #34111453
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шаблоны и виртуальные функции
onstat- AkhТак отнаследоваться или хранить объекты?

Может возможно хранение указаетелей типа нешаблонного интерфейса шаблонов?

Да я как раз это и имел ввиду.

Попробовать такое?:

Код: plaintext
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.
class Class1 {
   public:
      virtual func1() =  0 ;
}

template <class T>
class Class2 : public Class1 {
    public:
      virtual func1() {...};
}

class ClassX {
    private:
       vector<Class1*> v_cl1;
    public:
       void add(Class1 *_cl1) {
           v_cl1.push_back(cl1);
       }
       Class1* get(int i) {
           ...
       }
}

ClassX clX;
clX.add(new Class2<SomeOtherClass>);
...
Рейтинг: 0 / 0
08.11.2006, 11:37
    #34111456
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шаблоны и виртуальные функции
onstat- AkhТак отнаследоваться или хранить объекты?

Может возможно хранение указаетелей типа нешаблонного интерфейса шаблонов?

Да я как раз это и имел ввиду.
вот так можно
class Base
{
public:
virtual ~Base() []
virtual foo() = 0;

};
template <typename T>
class Derived : public Base
{
...
};

typedef Vector<auto_ptr<Base> > Buffer;
int main()
{
Buffer buf;
buf.push_back(new Derived<int>());
buf.push_back(new Derived<double>());
}
...
Рейтинг: 0 / 0
08.11.2006, 12:40
    #34111800
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шаблоны и виртуальные функции
Akh & blinded, Огромное Спасибо.

В ближайщее время обязательно попробую.
...
Рейтинг: 0 / 0
08.11.2006, 12:59
    #34111930
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шаблоны и виртуальные функции
blindedtypedef Vector< auto_ptr <Base> > Buffer;


Сам-то пробувал ?
...
Рейтинг: 0 / 0
08.11.2006, 20:35
    #34113869
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шаблоны и виртуальные функции
Gluk (Kazan) blindedtypedef Vector< auto_ptr <Base> > Buffer;


Сам-то пробувал ?
попробувал, признаюсь облажался, нету там конструктора от
const auto_ptr<T> вот беда...
...
Рейтинг: 0 / 0
09.11.2006, 09:02
    #34114366
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шаблоны и виртуальные функции
blinded Gluk (Kazan) blindedtypedef Vector< auto_ptr <Base> > Buffer;


Сам-то пробувал ?
попробувал, признаюсь облажался, нету там конструктора от
const auto_ptr<T> вот беда...

Если бы получилось было бы только хуже
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Шаблоны и виртуальные функции / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]