Можно ли добавить класс шаблона внутри std :: array без указания имени типа? Я имею в виду.
template<typename T>
class MyClass
{
...
}
std::array<MyClass *> arr;
Причина в том, что у меня есть своего рода хранилище, которое принимает все классы, производные от MyClass
, но проблема с классом шаблона заключается в том, что мне нужно указать имя типа, тогда класс должен быть таким:
class Storage
{
...
private:
std::array<MyClass<TYPE GOES HERE> *> arr;
}
И я хочу что-то более-менее подобное:
class Storage
{
...
private:
std::array<MyClass *> arr;
}
Таким образом я могу добавить любой класс, производный от MyClass.
Есть ли способ сделать это?
template <typename> class T
? - person   schedule 17.09.2014MyClass
, но я не могу этого сделать из-за шаблона, но мне нужно сохранить шаблон, потому что я его использую. - person yayuj   schedule 17.09.2014MyClass
должен быть специализирован для конкретного типа, который будет фактически создан:MyClass<int>
. - person πάντα ῥεῖ   schedule 17.09.2014Storage
класс шаблона. - person Csq   schedule 17.09.2014std::array<MyClass<int>> arr;
, если имя шаблона другое, понятно? Я хочу иметь возможность добавлять любой класс, производный отMyClass
, независимо от имени типа шаблона. - person yayuj   schedule 17.09.2014MyClass<int>
иMyClass<double>
- совершенно разные типы. Если вам нужен массив, который может хранить указатели на оба, дайте им общий базовый класс или используйте стирание типа. - person T.C.   schedule 17.09.2014MyBaseClass
и унаследовать от негоMyClass
, чтобыStorage
содержалstd::array<MyBaseClass *> arr;
. Если вам нужно вызвать специфичные дляT
функцииMyClass
изStorage
- тогда вы не сможете этого сделать, и, по сути, не можете сделатьStorage
класс независящим отT
. - person Arnon Zilca   schedule 17.09.2014MyClass
. - Я думаю, что единственное решение, которое я вижу, - это создать хранилище с шаблоном, как указано выше. - person yayuj   schedule 17.09.2014T
внутриMyClass
. Важно то, чтоStorage
его массивT
не используется. Это делает возможной идею наследования. - person Arnon Zilca   schedule 17.09.2014