Чтение этой статьи MSDN , я наткнулся на этот простой пример, который мне действительно подходит, так как я делал несколько RAII классов для некоторых нативных интерфейсов c ++, выполняя всю работу :( и я делаю это впервые)
ref class Wrapper {
Native *pn;
public:
// resource acquisition is initialization
Wrapper( int val ) { pn = new Native( val ); }
// this will do our disposition of the native memory
~Wrapper(){ delete pn; }
void mfunc();
protected:
// an explicit Finalize() method—as a failsafe
!Wrapper() { delete pn; }
};
Этот класс в точности соответствует тому, что я написал до сих пор. За исключением того, что я не реализовал метод Finalize. Но, задаваясь вопросом о его особенностях и использовании, и прежде чем я смог понять его гораздо глубже ... Мне было интересно, если это общее использование и хорошая привычка, чтобы поместить метод Finalizer в защищенную область.