I need several C++ classes to have a static method “register”, however the implementation of register varies between those classes.
It should be static because my idea is to “register” all those classes with Lua (only once of course).
Obviously I can’t declare an interface with a static pure virtual function. What do you guys suggest me to do ? Simplicity is welcome, but I think some kind of template could work.
Example of what I would like to achieve
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;
}
Based on how you’ve described the problem, it’s unclear to me why you even need the ‘virtual static method’ on the classes. This should be perfectly legal.
Drop the RegisterInterface, I don’t think you need it.