собственно сабж. с помощью него в с++ очень удобно организовывать RAII. пример:
Например что-то вроде:
class MyDialogWindow : public MyDialogBase
{
public:
MyDialogWindow(){};
~MyDialogWindow()
{
// Тут ничего писать не надо. оно все само освободится.
}
public:
virtual void OnCreateFile()
{
Operation.reset(new FileOperation("c:\\file.txt"));
}
virtual void OnAddLineButton()
{
Operation->AddLine();
}
virtual void OnAddTitleButton()
{
Operation->AddTitle();
}
virtual void OnBlaBlaAction()
{
Operation->BlaBlaAction();
}
private:
std::auto_ptr<FileOperation> Operation;
}
При этом невозможно забыть освободить ресурс, так как оно произойдет автоматически.
А как подобное реализуется в C# ?
UNIX way — это когда тебе вместо туалетной бумаги дают топор, рубанок и карту близлежащего леса