【发布时间】:2014-01-24 14:14:40
【问题描述】:
出于某种原因,我需要使用固定大小的字符串。现在我正在寻找一个 QString 类。
但是我有一些关于使 QString 对象具有恒定大小的问题。
例如,我想要一个大小为 10 的字符串,这意味着,如果我尝试编写一些包含超过 100 个字符的
字符串,它将删除 100 个字符之后的所有字符。
我在 Qt 文档中找到了 QString 的构造函数,但我不确定它是否会像我说的那样工作
- QString(int size , QChar ch)
在这种情况下你有什么建议?
【问题讨论】:
-
您可以继承
QString并实现自己的构造函数和赋值运算符,通过剪切超过 100 个字符的所有内容来限制字符串中的字符数。 -
子类化 QString 可能不是一个好主意。与大小有关的几种方法都不是虚拟的。您还必须触摸所有修改字符串大小的函数。这几乎是所有功能......
-
@vahancho QString 的子类化是一个非常糟糕的主意,因为 QString 是线程安全的类,它实现了 COW 和许多其他东西。可能有很多错误。
-
@tema - 您应该在将字符串放入 QString 之前简单地预处理您的字符串。这是一个很好的模式。
-
顺便说一句,如果你能比
For some reason更明确一点,我们或许可以提供一些替代方案?