C++ (Qt) を使用しています。
シングルトン クラスを拡張していますが、サブクラスには静的メソッドしかありません。SubClass のインスタンスを作成していません。Singleton クラスはコンストラクタとデストラクタがプライベートなので、そのコンストラクタとデストラクタにアクセスできません。
class Singleton
{
private :
Singleton();
~Singleton();
public :
// some methods.
}
class SubClass : public Singleton
{
// There is NO constructor or destructor
public:
// Only some STATIC methods.
}
親の getInstance() を呼び出すSubClass::getInstance()を使用します。SubClass の静的メソッドのみを使用します (したがって、SubClass をインスタンス化する必要はありません)。
だから私の問題は、コンパイル時に警告が表示されることです-
「基本クラスのデストラクタにアクセスできないため、サブクラス: デストラクタを生成できませんでした」。
これらの警告を取り除きたいのですが、この設計がシングルトン設計パターンに違反していることも知りたいですか?
達成したいこと
アプリケーション用のロガーを作成しています。サードパーティ ライブラリのロガー クラス (QxtCore ライブラリの QxtLogger) を使用しています。この QxtLogger クラスはシングルトンであり、コンストラクターとデストラクターがプライベートです。QxtLogger が持っているすべてのメソッドといくつかの追加の静的メソッド (私のアプリケーションに固有のもの) を持つシングルトン クラスが必要です。
そこで、QxtLogger を継承するクラスを作成し、いくつかの静的メソッドを追加しました。私が心配しているのは、警告を生成しているシングルトン クラスを拡張することです (基本クラスのコンストラクタとデストラクタにアクセスできないため)。それで、私は何をすべきですか?