次のコードについて質問があります。
class MyClass : private boost::noncopyable
{
public:
MyClass() {}
virtual ~MyClass() {}
}
class OtherClass : private boost::noncopyable
{
private:
MyClass* m_pMyClass;
}
私の考えでは、MyClassは構築または割り当てを使用してコピーすることはできません。サポートしたくないMyClassからのクラスの派生をサポートしたい場合は、仮想デストラクタを使用する必要があります。このクラスへのポインタを作成して渡すつもりはありません。
シングルトンは必要ありません。仮想デストラクタを削除することのマイナス面はわかりません。
コピーできないクラスの仮想デストラクタを削除すると、潜在的な問題が発生しますか?シングルトンである必要はないクラスを処理するためのより良い方法はありますが、別のクラスの1つのインスタンスのみが必要であり、継承はサポートされていませんか?