以下の内容はhttps://toburau.hatenablog.jp/entry/20090728/1248797907より取得しました。


auto_ptr

標準ライブラリにauto_ptrというのがあるのは知っていたか、どう使うのか分からなかったので試してみた。

#include <iostream>
#include <memory>
using namespace std;

class Test
{
public:
    Test() { cout << "Test Constructor" << endl; }
    ~Test() { cout << "Test Destructor" << endl; }
    void Func() { cout << "Test Func" << endl; }
};

int main()
{
    std::auto_ptr<Test> pObj(new Test());
    pObj->Func();
}

実行結果
Test Constructor
Test Func
Test Destructor

auto_ptrは作成されるときにオブジェクトのポインタを持ち、自分が破棄されるときに自分が持っているポインタのオブジェクトも破棄してくれる。auto_ptrを使えば、newした後、deleteしなくても大丈夫。というよりもdeleteし忘れを防ぐためのもの。
便利だけど欠点もある。同じオブジェクトを複数のauto_ptrで指し示してはいけないということ。auto_ptrが破棄されるときにオブジェクトをdeleteするので、複数あると複数回deleteすることになってしまう。




以上の内容はhttps://toburau.hatenablog.jp/entry/20090728/1248797907より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14