Подскажите пожалуйска кто знает как на C++ (VS2005) объявить указатель на тип, точнее не собственно указатель как например: MyClass *pMyClass, а по аналогии с делфийским объявлением: MyTypeClass = class of MyClass; что бы через этот указатель можно было передать сам тип (если это указатель на базовый класс то типы наследников), а не указатель на объект класса. Что бы с помощью этого указателя потом можно было создать этот объект. Если это можно сделать в делфе, то явно должно быть можно и в сях

.
Здравствуйте, Alexeus, Вы писали:
A>Подскажите пожалуйска кто знает как на C++ (VS2005) объявить указатель на тип, точнее не собственно указатель как например: MyClass *pMyClass, а по аналогии с делфийским объявлением: MyTypeClass = class of MyClass; что бы через этот указатель можно было передать сам тип (если это указатель на базовый класс то типы наследников), а не указатель на объект класса. Что бы с помощью этого указателя потом можно было создать этот объект. Если это можно сделать в делфе, то явно должно быть можно и в сях
.
курить шаблоны проектирования:
ФАБРИКА,
ПРОТОТИПPosted using RSDN@HOME
Здравствуйте, valker, Вы писали:
V>Здравствуйте, Alexeus, Вы писали:
A>>Подскажите пожалуйска кто знает как на C++ (VS2005) объявить указатель на тип, точнее не собственно указатель как например: MyClass *pMyClass, а по аналогии с делфийским объявлением: MyTypeClass = class of MyClass; что бы через этот указатель можно было передать сам тип (если это указатель на базовый класс то типы наследников), а не указатель на объект класса. Что бы с помощью этого указателя потом можно было создать этот объект. Если это можно сделать в делфе, то явно должно быть можно и в сях
.
V>курить шаблоны проектирования: ФАБРИКА, ПРОТОТИП
Александреску
Здравствуйте, Alexeus, Вы писали:
A>Подскажите пожалуйска кто знает как на C++ (VS2005) объявить указатель на тип, точнее не собственно указатель как например: MyClass *pMyClass, а по аналогии с делфийским объявлением: MyTypeClass = class of MyClass; что бы через этот указатель можно было передать сам тип (если это указатель на базовый класс то типы наследников), а не указатель на объект класса. Что бы с помощью этого указателя потом можно было создать этот объект. Если это можно сделать в делфе, то явно должно быть можно и в сях
.
Судя по названию, это "class of" сильно напоминает оператор typeid. Результат typeid — объект класса type_info — хранит информацию о типе. Может быть использован, например, так:
// compile with: /GR
A* a = new A();
printf("%s", typeid(*a).name());
if (typeid(*a) == typeid(A))
{
//...
}
Здравствуйте, saddva, Вы писали:
S>Здравствуйте, Alexeus, Вы писали:
A>>Подскажите пожалуйска кто знает как на C++ (VS2005) объявить указатель на тип, точнее не собственно указатель как например: MyClass *pMyClass, а по аналогии с делфийским объявлением: MyTypeClass = class of MyClass; что бы через этот указатель можно было передать сам тип (если это указатель на базовый класс то типы наследников), а не указатель на объект класса. Что бы с помощью этого указателя потом можно было создать этот объект. Если это можно сделать в делфе, то явно должно быть можно и в сях
.
S>Судя по названию, это "class of" сильно напоминает оператор typeid. Результат typeid — объект класса type_info — хранит информацию о типе. Может быть использован, например, так:
S>S>// compile with: /GR
S>A* a = new A();
S>printf("%s", typeid(*a).name());
S>if (typeid(*a) == typeid(A))
S>{
S>//...
S>}
S>
Ему не эт о надо, если я правильно понял. Полное соответствие MyTypeClass = class of MyClass; есть только в С++ от Borland

У меня сейчас нет никакого компиллятора кроме GCC, так что подсказать не могу какое ключевое слово при этом используется.
А вместо
S>S>// compile with: /GR
S>A* a = new A();
S>printf("%s", typeid(*a).name());
S>if (typeid(*a) == typeid(A))
S>{
S>//...
S>}
S>
можно воспользоваться
dynamic_cast
: