如何在Qt中传递值?

时间:2011-11-21 05:20:34

标签: c++ qt qt-creator

我在做NFC项目。在这里我需要检测标签并从NFC标签读取标签内容,我需要将标签ID发送到PHP服务器。从服务器端,我将得到{tagId& tagcontent}的响应。在此之后我需要提取tagId和tagcontents。直到这个我已经完成并且工作正常。现在我的问题是将值传递给另一个类。一旦我从服务器获得SUCCESS响应,我需要将提取的值传递给另一个类。我怎样才能做到这一点。我是Qt编程的新手。请帮帮我。

1 个答案:

答案 0 :(得分:1)

您可以将参数作为键值对传递,即为此目的使用QHash或QVector。

此外,如果您希望信息过于具体,您可以定义一个自定义C ++类,其中包含响应字段的值,并将引用从第一个类传递给另一个类。

Qt中的参数传递类似于C ++。

您的QStringList,QVector或QHash都只是类。 您可以将这些类的对象作为任何其他自定义类传递。

例如:

在你的目标类中(比如T):

void getResponseHeader(QHash<QString,QString> x);

在您的通话类中(比如说C):

T *t  = new T(); //or whatever instance you have
t->getResponseHeader(myParsedResponse);

更具体地说,您可以通过值或引用在C ++中传递参数。 对于传递对象,最好通过引用传递它们。

按值传递意味着在被调用者的堆栈上创建对象的副本,并且更改对象意味着更改本地副本,以便在函数返回时调用者的对象不会更改。通过引用传递意味着发送对象的地址(引用保存地址但行为类似于对象),以便被调用者可以直接更改原始对象。

查看What's the difference between passing by reference vs. passing by value?

的此帖子

http://www.codeguru.com/forum/showthread.php?t=343473

的代码论上提供了一个很好的解释示例