2010-08-26 25 views
1

假設我有一個C++類X(一個Qt qobject,por例子)和一個方法,比方說,QMap handleDynMethods(QString別名)。如果x是X類的一個實例,我希望方法handleDynMethods(QString別名,QMap參數)在我執行x-> anyAliasName(參數)時產生x-> handleDynMethods(「anyAliasName」,參數)。是否有可能在C++ qt中做這樣的事情?可以在C++/qt類對象中動態地使用方法別名嗎?

謝謝, 萊安德羅。

+0

嘗試向我們展示代碼而不是解釋它。 – 2010-08-26 05:44:54

回答

1

我覺得你說:

「假設我有一個C++類X,它繼承自QObject,具有如下的定義:」

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

「如果我有一個變量x是‘

:類X的一個實例。」

X *x = new X(); 

’我可以用下面的語法調用handleDynMethods方法0

QMap parameters; 
x->anyAliasName(parameters); 

「並把它作爲如果我這樣做:」

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

如果這是你所要求的,則沒有,這是不可能的,對不起。

旁註:你可以定義一個函數,如:

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

,但我想你想的「anyAliasName」部分是動態的,這是不可能的。

+0

嗨傑克,是的,這正是我所希望的......如果您必須編寫一個與我們討論的內容更接近的代碼,您將如何執行此操作? – 2010-08-28 19:08:31

+0

看到我的帖子的底部,它下面寫着「旁註:你可以定義一個函數,如:」 – 2010-08-29 00:31:12

+0

傑克,這是非常遠離我所需要的,這就是爲什麼我問了一個替代方案...無論如何。 – 2010-08-29 22:54:31

相關問題