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

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;
}

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