Есть ли в C++ аналог "class of" из Object Pascal-я?

trobak

Хочется следующее: иметь массив типов (потомков некоторого класса, скажем TX и уметь для каждого элемента этого массива создавать экземпляр класса соответствующего типа. В Object Pascal-е (в Delphi я это могу делать примерно так:


type TXClass=class of TX;
var TypeList = array [....] of TXClass;
.....
var NewObject : TX;
for i:=.. to ... do begin
NewObject := TypeList[i].Create(...);
....
end;


Как это реализовать на C++?

Dasar

например, так:


class ICreator
{
public:
vritual void * Create = 0;
}
template<class T>
class Creator:
ICreator
{
public:
void * Create
{
return new T;
}
}
ICreator* creators[] = {new Creator<Class1>, new Creator<Class2>};
for (int i =0; i < count; ++i)
creators[i]->Create;

trobak

спасибо
Оставить комментарий
Имя или ник:
Комментарий: