2013-09-22 5 views
0

Как нарисовать указатель в C++ из имени класса в String?C++ Тип указателя, отлитого от имени класса

Psuedocode:

int * ptr = something; 
myStruct ptrstruct = (ClassFromString("myStruct") ptr); 
// The class/struct name is passed in as String 

Спасибо

+1

Непонятно; что вы хотите, чтобы этот код выполнял? –

+8

Я не думаю, что C++ поддерживает этот вид отражения напрямую. –

+0

Возможно, вы ищете шаблон дизайна «Factory Factory». Это может быть реализовано на C++ довольно легко, но не является языковой функцией. – paddy

ответ

0

Я не с ++ гуру, но у меня есть две идеи, которые могут помочь с мозгового штурма:

  • Может использование шаблона реестра, как описано здесь будет помочь: Instantiate class from name?
  • Во-вторых, после идея шаблона реестра вы можете создать функцию для литья, например MyClass something = registry.cast("MyClass", ptr);
-1

Я не уверен, но это должно работать только Пустота указатель или импульс может помочь, если это произойдет

thing * p = something; // pointer to object 
void * pv = p;   // pointer to void 
thing * p2 = static_cast<thing *>(pv); // pointer to the same object 

Может быть такой же ситуация при возврате значений из потоков Полное отражение невозможно в C++. Его просто мозговой штурм.

+0

Это выглядит почти полностью не связанным с тем, что спрашивает ОП. – us2012

+0

Я вижу вас, что вы здесь сделали, но я не думаю, что вы поняли вопрос - частично из-за моей плохой формулировки. Но в качестве примера: что-то вроде этого 'thing * p2 = static_cast <"thing *"> (pv);' Вы видите, что я там делал? Это тот эффект, который я пытаюсь получить. – bluejamesbond

Смежные вопросы