auto-ptr

    18

    5答えて

    私はスマートポインタ(std::auto_ptr)についての学習だけでもほとんどのコンパイラは文句を言わないだろうし、それが正しいように見えるかもしれないので、スマートポインタ(std::auto_ptr)は、容器(すなわちstd::vector)に置かれるべきではないことhereとhereを読んでいます。スマートポインタが内部的に(例えばvectorクラスによって)コピーされず、所有権を転送する

    0

    2答えて

    を、私は疑問を持って、私はこれが可能であるかどうかを知りたい: 私は、一般的なデータ(文字列、int型で、データベースを使用しています、ブールなど)。オブジェクトが構築されるかオブジェクトのメンバが変更されるときはいつでも、特定のアクション(SELECTまたはUPDATE)を使用してデータベースをクエリする必要があります。 まず第一に、これはDBに関連する質問ではありません。実際の問題は、オブジェ

    1

    5答えて

    私は、単純なクラス型の多くのメンバーを含むクラスを持っています。もっと重要なのは、開発を続けるうちにその数が増えていることです。 すべてを一度にリセットする必要があります。コピーして貼り付けることなくやり直したいと思います。 typedef auto_ptr<odbc::PreparedStatement> Stmt; class DbProxy { private: void r

    2

    2答えて

    を取り扱うメンバ変数としてauto_ptrを使用することができます。 auto_ptrを使用すると、Aが破壊されたときにBがオンのままで、同じptrを指す他のAオブジェクトが問題なく処理できるようになります。 は、この外観のOKを行います。人々はこれとすべての問題を実装したさまざまな方法が何であるかを class A { public: auto_ptr<B> m_Ptr; priva

    5

    6答えて

    時折、一瞬の瞬間に、私はauto_ptrが涼しいと思う。しかし、ほとんどの時間私はそれが無関係にするはるかに簡単なテクニックがあることを認識します。たとえば、オブジェクトが自動的に解放されるようにするには、例外がスローされても、オブジェクトを新規に作成してauto_ptrに割り当てることができます。とてもかっこいい!しかし、より簡単に私のオブジェクトをローカル変数として作成し、スタックがそれを世話

    7

    2答えて

    なぜこのコードはではないはメモリリークを引き起こしますか? int iterCount = 1000; int sizeBig = 100000; for (int i = 0; i < iterCount; i++) { std::auto_ptr<char> buffer(new char[sizeBig]); } のWinXP SP2、コンパイラ:BCB.05.03

    2

    2答えて

    ヒープに2つの変数を割り当てて呼び出し元に返す関数があります。このような何か:私は1つの変数を持つ関数を持っているとき void Create1(Obj** obj1, Obj** obj2) { *obj1 = new Obj; *obj2 = new Obj; } は通常、似たようなケースでは、私はauto_ptrと「ソース」のトリックを使用します。 auto_pt

    4

    3答えて

    私の同僚の中には、コンストラクタの初期化リストでstd::auto_ptr〜0を明示的に初期化する方が好きですが、明示的な初期化を行わずにコンストラクタで0に初期化されます。だから、それを行う理由は何ですか? #include <memory> class A { A() : SomePtr(0) { } private: std::auto_pt

    1

    2答えて

    私はauto_ptrをしている場合は、私は同様の参照のためにそれを渡すことができます:? auto_ptr<MyClass>Class(new MyClass); void SetOponent(MyClass& oponent); //So I pass SetOponent(Class) をそしてauto_ptrsの奇数コピー行動は何ですか?

    4

    3答えて

    は、私は、関数の作成に記載された質問を参照してください次のコード、 #include <new> #include <memory> using namespace std; class Fred; // Forward declaration typedef auto_ptr<Fred> FredPtr; class Fred { public: static Fred