Russian Qt Forum
Ноябрь 15, 2024, 18:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Имя класса из строки  (Прочитано 2141 раз)
Rosster
Гость
« : Апрель 18, 2013, 20:04 »

В Java есть метод Class.forname(string). Он дает возможность взять имя класса из строки, есть альтернатива в С++?
Нужно что-то типа ClassFromName("MyClass") *obj = objOld;
Или может Qt имеет свой способ? Тоже подойдет.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Апрель 18, 2013, 20:50 »

В Java есть метод Class.forname(string). Он дает возможность взять имя класса из строки, есть альтернатива в С++?
Взять или всё-таки создать? Если последнее, то
Код
C++ (Qt)
QWidget * QUiLoader::createWidget ( const QString & className, QWidget * parent = 0, const QString & name = QString() )
Записан

Qt 5.11/4.8.7 (X11/Win)
Rosster
Гость
« Ответ #2 : Апрель 18, 2013, 22:43 »

Не совсем. Фишка в том, что есть штук 10-20 классов в названии которых различие только в цифре (идиотизм, но не я придумал))) И общий класс для всех. В метод приходит как раз указатель на объект этого общего класса, а мне нужно каждый Class1 - Class20 перебрать через static_cast. Это конечно можно сделать, но красивей было бы именно как в Java.
Код:
void function(ClassMain *main)
{
     switch(_num)
    {
          case 1: static_cast<Class1>(main); .....
          case 2: static_cast<Class2>(main); .....
    }
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.21 секунд. Запросов: 22.