![]() ![]() ![]()
|
SophiaFramework 2.2 |
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;
}
このように、関数から返したり代入操作を行っても、 参照カウントは自動的に増減されますので、 プログラマは参照カウントについて頭を悩ます必要がありません。
| Copyright(C) 2003-2004 Sophia Cradle Inc., All Rights Reserved. |
![]() ![]() ![]()
|