0

抽象ファクトリ クラスを実装しています。ベース (抽象クラス) では、次の typedef を定義します。

// Logging callback type.
typedef void (*LoggingCallBackFuncP)(const std::string&);

そして持っている

static LoggingCallBackFuncP m_LogCallback;

また、抽象クラスに次の関数宣言が必要です。

static void SetLog(LoggingCallBackFuncP callback);

この関数は初期化しますm_LogCallback このような方法で、ログ関数を一度だけ初期化して、すべての派生クラスで使用する機会を得たいと考えています。このアプローチは大丈夫ですか?いつ/どのように初期化すればよいm_LogCallbackですか?

4

1 に答える 1

1

このアプローチは大丈夫ですか?

はい。

m_LogCallback をいつ/どのように初期化すればよいですか?

は静的であるためSetLog、オブジェクト インスタンスを必要とせずにいつでも呼び出すことができます。

構文は次のとおりです。NameOfAbstractClass::SetLog( my_callback );

于 2013-03-06T13:07:58.593 に答える