我现在有这样的事情:
QSharedPointer<t> Qsharedfoo;现在,我有了一个指向foo的原始指针,名为rawfoo。如何使foo点拥有原始指针并开始指向它。我知道在使用共享指针的boost中,我们可以使用boost::make_shared,如何使用QSharedPointer呢?
我想做这样的事:
Qsharedfoo = rawfoo发布于 2014-01-11 00:39:34
如何使foo点拥有原始指针并开始指向它。我知道在使用共享指针的boost中,我们可以使用boost::make_shared,如何使用QSharedPointer呢?
不幸的是你不能。
总之,您需要通过构造函数和operator=,如下所示:
Qsharedfoo = QSharedPointer<T>(rawfoo); // operator=() overload或者,如果您已经有了对指针的引用,那么按如下所示使用重置()方法:
Qsharedfoo.reset(rawFoo);但是,正如一开始所提到的,这些操作与您正在寻找的操作并不相等。
发布于 2014-01-11 00:08:35
直接从Qt文档,我们有这样的东西:
QSharedPointer<MyObject> obj = QSharedPointer<MyObject>(new MyObject);您基本上可以以相同的方式传递指针:
// Here I assume that T is the class you're using for Qsharedfoo.
QSharedPointer<T> Qsharedfoo = QSharedPointer<T>(rawfoo);https://stackoverflow.com/questions/21056387
复制相似问题