与笨拙的指针不同,我希望可以在函数中的堆栈上创建一个QSharedPointer
,然后将其作为返回值返回以分配给另一个相同类型的QSharedPointer
,对吗?通常,这样的指针将指向现在超出范围的内存,因此该指针无效。但是,如果希望保留另一个副本,则QSharedPointer
将确保将其保留在内存中。它是否正确?
最佳答案
指针可以存在于堆栈中,但是它指向的对象必须位于堆中。 (请注意,普通指针以及QSharedPointer
或std::shared_ptr
同样适用)。