-4

C++ スマート ポインター: クラスで、スマート ポインターを指すポインターを定義すると、スマート ポインターの利点がなくなりますか? (注、この種の使用法を適用したいとは言いませんでした)

お気に入り:

class TestClass
{
    public SmartPt* ptr1;
}

ここで、SmartPt はスマート ポインター クラスです。

ポインタをうまく管理しないと、ポイントされたスマート ポインタも管理されないからです。

これは、スマート ポインターを指すポインターを使用するのは適切ではないということでしょうか? したがって、次のようにスマート ポインターを直接使用することをお勧めします。

public SmartPt object1;

[更新 1] 読者の注意をそらさないために、以前は MySmartPt を使用していましたが、ここでは SmartPt に置き換えます。

4

2 に答える 2

0

いいえ、共有している例のようにスマート ポインターへのポインターを使用しようとしないでください。

C++ のスマート ポインターは、 * 演算子を可能な限り取り除こうとする RAII 原則に基づいて構築されています。また、生のポインターが理解できないコピー/割り当てのオーバーロードも使用します。

于 2014-12-04T23:45:49.990 に答える