1
5
http://qt-project.org/doc/qt-5/qstring.html#details
基本上QString非常棒,几乎不用担心。你可以在任何地方使用它,无论你喜欢什么。如果您由于太频繁地附加字符串而遇到任何类型的问题,有一种特殊的方法可以使用字符串生成器,但根据我的经验,在尝试使QString更好之前,还有很多其他地方需要改进。 直接回答您的问题: 这安全吗?c编译器是否确保返回值在内存中停留足够长的时间,以便调用函数使用?(或者这会导致内存损坏)。如果是后者,返回QString的正确方法是什么?(结果变量必须是静态的吗?结果必须是测试类的成员变量吗?) 在上述所有情况下,它都是安全的。只要任何函数都有QString的句柄,共享指针等都会将其保存在内存中。一旦它完全超出范围,它就会自我清理。 QString包含常量是否重要?(What-id-case 3将结果分配给随机字符串) 不,没关系。 如果myfunc是一个静态方法,我想从不同的线程调用它怎么办?我是否必须通过引用传递一个额外的Qstring,以确保每个调用者都得到自己的变量(并返回void)?
你应该用交叉线保护,比如
UPDATE:QMutexLocker示例
希望这会有所帮助。 |
2
1
您所指的“常量字符串”的概念是虚构的。没有这样的事。声明
线程安全方面与字符串无关。您显示的方法体可以是静态方法,因为它不使用实例的任何数据。它也是一个纯函数,根本无法访问任何共享状态。这样的纯函数根据定义是线程安全的,因为它们不访问共享状态。您可能希望用一个更接近您的问题并实际演示一些线程问题的示例来修改您的问题。
|
Kevin Furlong · 类型转换和泛型 6 年前 |
Oleg Volkov · T-SQL存储过程结果转换为变量 6 年前 |
Jmainol · 获取选项标记值y传递到数组中 7 年前 |
Shiranai · 使用指针在C中的一个函数中返回多个值 7 年前 |
Kayote · 函数是否总是返回值[重复] 7 年前 |
user3723688 · python导入csv函数 7 年前 |