前のページ次のページ上に戻るホーム SophiaFramework 2.0

7.3. スマート ポインタ テンプレート

SFUBrewPtr は、ラッパー クラスのポインタを保持して 参照カウントの自動管理を行うスマート ポインタ テンプレートです。

ラッパー オブジェクトはほとんど場合、 この SFUBrewPtr<> とともに使用します。


class MyClass {

private:

    SFUBrewPtr<SFUFile> _file;

public:

    SFUBrewPtr<SFUFile> GetFile() { 

        return _file; 

    }

    SetFile(const SFUBrewPtr<SFUFile>& file) {

        _file = file;

    }

};



MyClass MyFunc(SFUAnsiString strFileName) {

    SFUBrewPtr<SFBFileMgr> fileMgr = SFBFileMgr::Instance();

    SFUBrewPtr<SFBFile> file = fileMgr->OpenFile(strFileName, _OFM_READ);

    

    MyClass ret;

    ret.SetFile(file);

    return ret;

}

このように、関数から返したり代入操作を行っても、 参照カウントは自動的に増減されますので、 プログラマは参照カウントについて頭を悩ます必要がありません。