但是,类QSharedDataPointer
有它。
我总是必须定义一个Class::pointer
typedef
缩写并创建一个指针Class::pointer(new Class)
。
有谁知道这其中的原因?
但是,类QSharedDataPointer
有它。
我总是必须定义一个Class::pointer
typedef
缩写并创建一个指针Class::pointer(new Class)
。
有谁知道这其中的原因?
我怀疑 T* () 运算符不存在的原因是因为存在T* data() 函数,它与许多其他 Qt 类(如 QString、QByteArray 等)一样,都提供了一个 data() 函数来访问Qt 类的基础数据。
这维护了跨 Qt 类的标准接口。
此外,通过重载运算符,如果要更改基础数据而没有在此处实现,则很容易出错。在我看来,使用 data() 函数可以让你在做什么更加明显。
QSharedPointer的data()函数还警告不要删除返回的指针,或将其传递给任何可能删除它的东西,所以我认为它是一个函数,如果你真的需要它就在那里,但如果你能避免它更好,并且如果您确实使用它,请仔细考虑正在发生的事情。