Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > создание объектов


Автор: ss 5.2.2017, 21:40
можно ли как-нибудь реализовать такое:
в файлах описываются классы. Типы классов записывать в строку (массив строк).
По значению строки создавать объект класса т.е. без перечисления  и явного указания ?

напр.
Код

class Myclass
{
...
}

void* createObject(const char* className)
{
      return (void*) new className;
}

Автор: Alexeis 5.2.2017, 21:52
Рефлексии в чистом нет в С++. Это что-то в строну Qt нужно копать. 
https://www.youtube.com/watch?v=_oBgonj_E7Q

Автор: azesmcar 5.2.2017, 23:17
https://gist.github.com/mbains/3406184

Автор: ss 6.2.2017, 19:42
Alexeis,  спасибо за ссылку. видеоуроки есть неплохие, но там используется метаобъект. Я с ним работаю но в нем содержится информация о самом классе а точнее о той информации которой собирает Qt.


azesmcar,  по той ссылки реализуется шаблонная функция. В шаблон нужно явно указывается тип а параметр функции там вообще не используется.

Я думаю может там через макросы можно как-то сделать ?!

Автор: azesmcar 6.2.2017, 23:14
ss, ну да. ты создаешь классы, регистрируешь их в фабрике и даешь имена в виде строки, а потом по этой строке создаешь.

вот другая ссылка с описанием.
https://ru.wikipedia.org/wiki/Фабричный_метод_(шаблон_проектирования)
создаешь std::map указателями на базовый creator и все.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)