gpt4 book ai didi

c++ - 通过引用传递空 QString

转载 作者:搜寻专家 更新时间:2023-10-31 00:00:01 25 4
gpt4 key购买 nike

我有一个方法有这个签名

void SetFoo(QString& foo);

我试图传递一个内联的空字符串,但以下都没有编译

SetFoo("");
SetFoo(QString(""));

(error: no matching function for call to ‘MyClass::SetFoo(QString)’)

但是如果我像这样创建一个变量,它就可以工作。

QString emptyFoo = "";
SetFoo(emptyFoo);

有没有办法在不显式创建变量的情况下调用方法?

注意: 使用 vc++ 编译器在 windows 环境下似乎一切正常,但我在使用 g++ 的 linux 环境中遇到上述编译错误。

最佳答案

您可以创建一个全局对象作为 const QString nullStr() 并在任何地方使用它 - 有点类似于 Null Object Pattern .

或者,如 billz 所述,可以存在对临时对象的 const 引用,因此将其设为 const Qstring& will enable the first 2 versions

无论如何,如果您不打算修改它,您应该更改对 const Qstring& 的引用。

关于c++ - 通过引用传递空 QString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14351601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com