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 回答