Обратен оператор на typeid ?

5 отговора 214 прегледа
#1

Обратен оператор на typeid ?

Трябва да пазя низове (като char*) с имена на разни класове и после по тези имена да конструирам обекти от съответния клас. Има ли начин стринга да бъде преобразуван до име на клас по време на изпълнение на С++ ?

Отговор
в отговор на Ox #2

Re: Обратен оператор на typeid ?

Краткият отговор е "Не".

Дългият е "Възможно е", но не е лесно. Ще трябва или да използваш готова reflection библиотека за C++ (има такива, но всички са сложни и тежки), или сам да си направиш нещо подобно. При всички положения обаче, вграденото RTTI на C++ не е достатъчно, трябва или да надстройваш върху него, или да си напишеш собствено RTTI, както например е направено в MFC.

Отговор
в отговор на Ox #3

Re: Обратен оператор на typeid ?

P.S. Разбира се, в някои по-прости случаи е достатъчно да си направиш едно class factory на което да подаваш името на класа, от който би желал нова инстанция.

Отговор
в отговор на Ox #4

Re: Обратен оператор на typeid ?

Що не ползваш ATL & COM?

Я вышел им наперерез!
Отговор
в отговор на Resurrector #5

Щото

Много ще се натовари кода ...

Отговор
в отговор на Ox #6

Re: Щото

ATL/COM? natowari? coda?!

ami shtom kazwash :)

PS. az si mislia che chistia COM moje samo malko da ti natowari src, koeto se izbiagwa s ATL
PPS. da ne bi kat chuesh COM awtomatichno da go swyrzwash s MFC? :)

Отговор