その例だと、こんなかんじのラッパークラスつくって、
a = HogeWrap(); a:open() とかして使うのが楽かと。

class HogeWrap {
public:
HogeWrap() : data(NULL) {};
~HogeWrap() { close(); };
void open() { close(); data = OpenHoge(); }
void close() { if (data) { CloseHoge(data); data=NULL;} }
... 他いろいろ必要なメソッド if(data) を忘れずに
private:
Hoge *data;
};