我正在做 NFC 项目。在此我需要检测标签并从 NFC 标签中读取标签内容,我需要将标签 ID 发送到 PHP 服务器。从服务器端我会得到 {tagId&tagcontent} 的响应。在此之后我需要提取 tagId 和 tagcontents。直到这我已经完成并且工作正常。现在我的问题是将值传递给另一个类。一旦我从服务器获得成功响应,我需要将提取的值传递给另一个类。我怎样才能做到这一点。我是 Qt 编程的新手。请帮助我。
最佳答案
您可以将参数作为键值对传递,即为此目的使用 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 的代码论坛上提供了一个很好的示例解释。
关于c++ - 如何在Qt中传递值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8207603/