QString 使用是 D-Pointer 以及 COW 技术,有两种空的状态:
1. isNull() { d == SharedNull; }
2. isEmpty() { size() == 0; }
所以上面说的空字符串也有两种开销:
QString() ==> 基本上没开销,设置 d = SharedNull 搞定,
QString("") ==> 申请一个内存块,设置 size = 0,约等同于创建一个 shared_ptr<int> 对象并设置为零
【 在 ilovecpp (cpp) 的大作中提到: 】
: 创建时为什么会有引用计数开销?难道所有空的共享一个空对象?
--
FROM 117.24.206.*