원시 포인터의 qsharedPointer
-
22-12-2019 - |
문제
현재이와 같이 있습니다 :
QSharedPointer<t> Qsharedfoo;
.
이제 Foo에 대한 원시 포인터가 rawfoo
라고 불리는 것입니다.Foo Point를 원시 포인터를 소유하고 포인터를 가리키는 방법은 무엇입니까?우리가 boost::make_shared
를 사용할 수있는 공유 포인터로 부스트를 알고 있습니다.
QSharedPointer
로 어떻게합니까?
나는 이렇게하고 싶습니다 :
Qsharedfoo = rawfoo
. 해결책
foo point를 원시 포인터를 소유하고 그것을 가리키는 것을 시작할 수 있습니다.공유 포인터로 부스트를 알고 있습니다. Boost :: make_shared QsharedPointer로 어떻게 작동합니까?
불행히도 할 수 없습니다.
-
항상 make_shared와 달리 생성자를 통과해야합니다.
-
반드시 안전한 것은 아닙니다.
요약에서 생성자와 연산자= 다음과 같이 :
Qsharedfoo = QSharedPointer<T>(rawfoo); // operator=() overload
.
또는 포인터에 대한 참조가 이미있는 경우 재설정 () 메소드 다음과 같이 :
Qsharedfoo.reset(rawFoo);
.
그러나 처음에는 언급했듯이, 이들은 당신이 찾고있는 것과 동일한 작업이 아닙니다.
다른 팁
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);
. 제휴하지 않습니다 StackOverflow