Если у меня есть следующие 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_;
};