2

QScopedPointerとのどちらかを選択できるとboost::scoped_ptrしたら、次の場合にどちらが最も効果的か:

1. QScopedPointer<QObject> Vs boost::scoped_ptr<QObject>
2. QScopedPointer<QtContainer> Vs boost::scoped_ptr<QtContainer>
3. QScopedPointer::data() Vs boost::scoped_ptr::get()
4

1 に答える 1

6

どちらも基本的に同じことをします。QScopedPointer::take()Qt バージョンには、所有権を他の人に譲渡できるポインター ( ) を使用して放棄する機能があるようです。ではできませんがscoped_ptr、両方の種類を交換できます。

boost::scoped_ptrまた、QScopedPointer明示的にコピー不可です。

QScopedPointerポインターに「deleter」を渡すことができるメカニズムがあります。これは事実上、指定されたクラスの public static メンバーであるためQScopedPointer、ポインターのサイズにすぎません。のタイプにQScopedPointerは、デリータのタイプが含まれている必要があります。

どちらもstd::unqiue_ptrC++0x で廃止されました。

于 2011-08-18T19:53:45.270 に答える