Возможно ли динамически иметь псевдонимы методов в объектах класса c ++ / qt? - PullRequest
1 голос
/ 26 августа 2010

Предположим, что у меня есть класс C ++ X (объект Qt, пример), с методом, скажем, QMap handleDynMethods (псевдоним QString).если x является экземпляром класса X, я хочу, чтобы метод handleDynMethods (псевдоним QString, параметры QMap) вызывался, когда я выполняю x-> anyAliasName (параметры), создавая x-> handleDynMethods («anyAliasName», параметры).Можно ли сделать что-то подобное в c ++ qt?

Спасибо, Леандро.

1 Ответ

1 голос
/ 26 августа 2010

Я думаю, вы говорите:

"Предположим, у меня есть класс C ++ X, который наследует QObject со следующим определением:"

class X : QObject
{
public:
    QMap handleDynMethods(QString alias, QMap parameters);
};

"Если у меня есть переменнаяx, который является экземпляром класса X ... "

X *x = new X();

" Можно ли вызвать метод handleDynMethods с использованием следующего синтаксиса: "

QMap parameters;
x->anyAliasName(parameters);

" и получить егодействуй так, как будто я сделал: "

QMap parameters;
x->handleDynMethods("anyAliasName", parameters);

Если это то, что ты спрашиваешь, то нет, это невозможно, извините.

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

QMap anyAliasName(QMap parameters)
{
    return handleDynMethods("anyAliasName", parameters);
}

но я думаю, что вы хотите, чтобы часть anyAliasName была динамичной, что невозможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...