我将翻译如下:
我正在开发一个用C++编写的简单框架。现在我有如下文件:
app.cpp
#include "app.h"
namespace App
{
}
void App::init()
{
}
void App::timerEvent(int time)
{
}
如果有时我不想监听 timerEvent 会怎么样?我仍然必须编写空方法实现。
我的想法是从命名空间移到 class App : public BaseApp
,并在 BaseApp
中使用 virtual void BaseApp::init() = 0
和 virtual void BaseApp::timerEvent(int time) {}
(类似于 Qt 的 QApplication
)。但是,App
必须是单例模式的,但我没有看到任何一种方式可以从 BaseApp
指定它,因此我必须在 App
中编写单例模式代码,而所有虚拟概念都没有意义。
我应该如何设计它?
P.S. 我不想在这里使用监听器。对我来说,这似乎过度了。
P.P.S. 我需要单例模式,因为我从 main
初始化 app 实例,但仍然希望从另一个类访问其方法。
App
对象。你不需要使用单例模式来做出这个选择。 - GalikApp
的引用传递给需要调用其成员函数的任何函数或对象即可。 - Joseph Thomsoninstance()
方法中添加一个模板参数,并将你特定的应用类型作为模板参数传递。可以使用static_assert()
来确保模板参数是派生类型。 - Galik