smart-pointers

    1

    1答えて

    スマートポインタを使用するコードを移植する際に問題が発生しています。 旧コード..機能 Foo* Foo::FooFactory; 経由fooが内部的に作成され shared_ptr<Foo> create_Foo(); だから私たちはC++クラス/オブジェクトへのPtrを作成し、そのPTRを渡していることを理解共有のPtrオブジェクトに共有されたptrを作成して、タイプFooのオブジェク

    0

    4答えて

    pを共有/ユニークポインタとします。 if (p)とif (p.get())は同等ですか? これらの条件文または条件文内のコードは、どのような場合に異なる動作をすることができますか? 投稿者cppreference私はそのstd::shared_ptr::operator boolがget() != nullptrをチェックすることを読んだ。これはoperator boolの正確な実装ですか?

    0

    1答えて

    Scott Meyerの本では、共有ポインタを使用することによって引き起こされるオーバーヘッドの一部は、ポインタオブジェクトを正しく破棄するためにvirutal関数が必要であることに言及しています。私の質問はなぜですか?これは、仮想デストラクターを持つために、その指摘されたオブジェクトのクラスの責任ではないと思われますか?

    3

    4答えて

    *の代わりにget()を*とするのはなぜですか? は、次のコードを考えてみましょう: auto_ptr<int> p (new int); *p = 100; cout << "p points to " << *p << '\n'; //100 auto_ptr<int> p (new int); *p.get() = 100; cout << "p points to " <<

    2

    2答えて

    []演算子または++を一意のポインタまたはshared_pointerで使用できますか?私たちは生のポインタのためにそれを使用するよう int * a = new int[10]; a[0] = 2; // We can use [] operator; スマートポインタのための同様の方法はありますか? これはいつ使うべきですか? それがない場合、なぜですか? MultiDimensiona

    0

    1答えて

    クラスAとクラスBをクラスAの各インスタンスはクラスBの0〜N個のインスタンスから所有します。Aのインスタンスが削除されると、Bのインスタンスも削除されます。例えば は:shared_ptr<parent>を有する class parent { private: vector< unique_ptr<child> > m_children; public: weak

    0

    1答えて

    sf :: text、sf :: Spriteおよびsf :: Textのshared_ptrをshared_ptrの配列に配置するのに問題があります sf :: Drawableはすべての ここではゲームエンジンの機能だ上記と抽象的です: GameEngine.hが template<class T> void add(std::shared_ptr<T> actor); Game

    0

    1答えて

    を最適化するために、次の2つのクラスAnimalとDogを(AnimalからどこDog継承)持っている、とあなたは、多くの場合、動物を期待しているが、犬のインスタンスを送信している状況があります。私の場合、私はしばしば、動物の期待機能(std::shared_ptr<Animal>)に強いポインタ(std::shared_ptr<Dog>)を投げかけています。 関数のパラメータを参照(std::s

    1

    1答えて

    私はそのコンストラクタで共有ポインタを受け取り、それを弱ポインタ​​に格納するクラスを持っていますが、この変換をどのように(そしてどこで)行うべきかはわかりません。 class A { public: A(std::shared_ptr<B> Bptr); private: std::weak_ptr<B> m_Bptr; }; shared_p

    1

    1答えて

    std::listに大量のオブジェクトを格納しようとしています。 さまざまな種類のデータを格納するオブジェクトが必要なので、派生クラスのどのオブジェクトにキャストするかを示すenum型の属性を保持する基本クラスへのポインタを格納します。各派生クラスは、データの独自のタイプがあります。各ベースオブジェクトは、それがどうあるべきかを入力知っていながら、しかし std::list<std::unique