Как создать нужный инстанс класса по имени без switch?

195
03 июля 2018, 14:10

Пользователь вводит имя фигуры и нужно создать класс этой фигуры. То есть какой класс создавать определяется в runtime. Как это можно сделать без switch?

Answer 1

Если речь именно про Qt, то можно воспользоваться местным рефлекшном - должен помочь класс QMetaType:

int typeId = QMetaType::type("MyClass");
if (typeId != QMetaType::UnknownType) {
    void *myClassPtr = QMetaType::create(typeId);
    ...
    QMetaType::destroy(typeId, myClassPtr);
    myClassPtr = 0;
    ...
}

Тип MyClass, разумеется, нужно предварительно зарегистрировать. Подробности - в документации.

READ ALSO
Звездочки вместо символов в консоли

Звездочки вместо символов в консоли

Проблема заключается в том , что я пишу функцию для ввода пароля и логина , и мне надо скрыть символы пароля , те

190
Что больше, 10^10 или long long?

Что больше, 10^10 или long long?

Возможно ли число 1010 засунуть в long long или не влезет?

166
Функция sort и алгоритмы сортировки [закрыт]

Функция sort и алгоритмы сортировки [закрыт]

Скорее всего, все наслышаны про различные алгоритмы сортировокТакже, в C++ есть встроенная библиотека <algorithm>, в которой есть функция sort

208