データ型を非表示にして情報を格納する次の 3 つのクラスがある場合、仮想デストラクタは必要ですか? いいえと信じさせられましたが、今はよくわかりません。事前の理由から、可能であれば含めたくありません。たとえば、クラスは酒のために取り除かれました。
#include <memory>
class DarkHideInterface
{
public:
bool test;
};
template <typename T>
class DarkHideInterfaceImpl : public DarkHideInterface
{
public:
DarkHideInterfaceImpl (const T& t ) : _t(t) {}
private:
T _t;
};
class DarkHide
{
public:
template <class T> DarkHide (const T& t) : p_(new DarkHideInterfaceImpl<T>(t) ) { }
private:
std::auto_ptr<DarkHideInterface> p_;
};