QString C程序员的注意事项
来源:互联网 发布:现货知乎 编辑:程序博客网 时间:2024/06/02 18:51
C程序员的注意事项
由于C++的类型系统和QString是隐含共享的事实,QString也许会被看做整型或者其它简单基本类型。例如:
QString boolToString( bool b ) { QString result; if ( b ) result = "True"; else result = "False"; return result; }
变量result是一个分配在栈中的自动变量。当return被调用时,因为我们正在返回值,复制构造函数被调用并且这个字符串的一个复制被返回。(我们要感谢隐含共享,没有实际的复制发生,请看下面。)
在Qt的源代码中,你将会遇到想这样的QString的用法:
QString func( const QString& input ) { QString output = input; // 处理输出 return output; }
从input到output的“复制”几乎和复制指针一样快,因为后面的场景复制是通过增加引用计数器来实现的。QString操作是基于写时复制的,只有在实例发生实际改变时,才会被复制。
如果你想不丢失任何Unicode信息的情况下创建一个QString的深度复制,那么你应该使用QString中用QChar*作为参数的构造函数。例如:
QString a("abcd"); QString b( a.unicode(), b.length() );
另外,使用QString中用const char*参数的构造函数就足够了。例如:
QString a("abcd"); QString b( a.latin1() );
也可以参考QChar、QCString、QByteArray、QConstString、隐含和明显共享类、文本相关类和非图形用户界面类。
- QString C程序员的注意事项
- C程序员使用Python的注意事项
- 黑马程序员-C语言函数的基本定义和注意事项
- 黑马程序员------C语言中printf使用的注意事项
- 黑马程序员-C语言中有关宏的一些注意事项
- 黑马程序员-C语言数组的使用注意事项
- C/C++的注意事项
- C、C++的注意事项
- Qt的QString和C++string之间的转换
- 程序员的个人发展注意事项
- 程序员的个人发展注意事项
- 程序员的个人发展注意事项
- 程序员的个人发展注意事项
- 程序员的个人发展注意事项
- 程序员的个人发展注意事项
- 程序员接私活的注意事项
- 程序员写简历的注意事项
- QString 和 其他 C 语言类型的转换
- 网络团购业继续洗牌
- 改变你一生的30个关键习惯
- [leetcode] Subsets II
- android模拟器调整尺寸和内存大小
- Step Three: Escape!
- QString C程序员的注意事项
- Android ViewFlipper的使用 实现页面滑动
- 帮您快速入门 TI 的 Codec Engine
- linux菜鸟在ubuntu下编译了arm的c程序
- Android短信拦截
- PostgreSQL数据库、表空间、角色及用户
- 利用ffmpeg添加水印
- DB2 SQLCODE: -443, SQLSTATE: 38553
- SEO