我在做NFC项目。在这里我需要检测标签并从NFC标签读取标签内容,我需要将标签ID发送到PHP服务器。从服务器端,我将得到{tagId& tagcontent}的响应。在此之后我需要提取tagId和tagcontents。直到这个我已经完成并且工作正常。现在我的问题是将值传递给另一个类。一旦我从服务器获得SUCCESS响应,我需要将提取的值传递给另一个类。我怎样才能做到这一点。我是Qt编程的新手。请帮帮我。
答案 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?
的此帖子 的代码论上提供了一个很好的解释示例