因为我不是C(++)专家,所以我被编译器的一些固执难住,不想将QString转换为QString *。 我有一个函数:将QString转换为QString的指针
bool getNextMessage(int sId, QString *msg, QString *cmd)
我使用的指针,在这里,因为我不能返回多个变量(被宠坏的Perl编码器;)在C),我想在一段时间(getNextMessage(使用这个.. 。)){...}样式循环。 内部的功能有一些SQL foo和这样的:
msg = QString("");
cmd = QString("");
return false;
所有编译器从这个产生是这样的:
cannot convert 'QString' to 'QString*' in assignment
难道你亲爱的乡亲们请拿起谜给我吗?谢谢。 :)
编辑: 解决方案:现在使用参考感谢来自leemes的指针。
谢谢,不知道引用,它现在的作品。 – BastetFurry
函数的输出参数实际上是其中一种查看情况,我发现指针可以超过引用:在堆栈上创建QString foo,然后通过&foo传递 - &表示它是out参数。这种模式的一个例子是.e.g。 QString :: toInt(bool * ok),其中ok返回是否解析int成功。 –
@FrankOsterfeld当参数是可选的时候,我同意你的意见,就像在'QString :: toInt'示例中一样。但是,如果它是强制性的,我们不能传递“空引用”。所以默认值是一个事后不用的实例......最后,这是一个口味问题,我想。 – leemes