Gol*_*les 4 c++ design-patterns
我需要几个C++类来使用静态方法"register",但是寄存器的实现在这些类之间有所不同.
它应该是静态的,因为我的想法是用Lua"注册"所有这些类(当然只有一次).
显然我不能用静态纯虚函数声明一个接口.你们有什么建议我做的?简单是受欢迎的,但我认为某种模板可以工作.
我希望实现的例子
class registerInterface
{
public:
static virtual void register() = 0; //obviously illegal
};
class someClass: public registerInterface
{
static virtual void register()
{
//I register myself with Lua
}
}
class someOtherClass: public registerInterface
{
static virtual void register()
{
//I register myself with Lua in a different way
}
}
int main()
{
someClass::register();
someOtherClass::register();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
根据你如何描述问题,我不清楚为什么你甚至需要在类上使用"虚拟静态方法".这应该是完全合法的.
class SomeClass {
static void register(void) {
...
}
}
class SomeOtherClass {
static void register(void) {
...
}
}
int main(int argc, char* argv[]) {
SomeClass::register();
SomeOtherClass::register();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
删除RegisterInterface,我认为你不需要它.