【发布时间】:2014-09-10 09:35:03
【问题描述】:
但是,QSharedDataPointer 类有它。
我总是必须定义一个 Class::pointer typedef 来缩写,并使用 Class::pointer(new Class) 创建一个指针。
有人知道原因吗?
【问题讨论】:
-
你能举个例子吗?
-
您不希望意外地将共享指针转换为原始指针并被悬空指针卡住。如果要存储指向具有共享所有权的对象的指针,请存储共享指针(或弱指针)。如果您需要将原始指针传递给某个接口,那么您需要确保对象的生命周期足够长。因此,从共享指针到原始指针的隐式转换是自找麻烦。
-
“我总是必须……”——不,你不需要。
ptr.data()完全按照您希望操作员执行的操作,没有意外破坏共享语义的危险。
标签: c++ qt smart-pointers qsharedpointer