是否可以引用指针变量所持有的地址值。
例如,我的函数是something(int &num);
,我需要传递指针,例如int* i = new int(1); like &(*(i));
可以这样做吗?
我正在使用qt而我不知道为什么会发生以下情况......
*&ui->numberInput->text()
提供QString
&ui->numberInput->text()
提供*QString
*ui->numberOutput->text()
提供*QLabel-text()
ui->numberInput->text()
提供QString
它不会被接受为&QString
?
有人可以帮我解决这个问题
答案 0 :(得分:4)
你只需像这样传递它
something(*i);
答案 1 :(得分:0)
它不会被接受为& QString ??
&
在C ++中有一些不同的用途。在类型的声明中,它表示“引用”,而在使用变量时,它可以是“地址”。你在这里指出的并不完全清楚。向我们展示你想要传递的内容,然后你试图传递给它的函数的声明可能更清楚。
那就是说,你提到QLabel::text()
,它会返回QString
。如果您想将text()
的结果传递给参考QString
的函数,那么您可以直接执行此操作。
// Given a function with this declaration
void SomeFunction(const QString& parameter);
// and also this varable.
QLabel* l = new QLabel;
// Then the following call would work:
SomeFunction(l->text());
另一方面,如果这不是您的意思,那么请告诉我们您遇到问题的实际代码以及您从中获得的错误消息。
答案 2 :(得分:-1)
是。语法是*& p。