我有一个基类Base和一些子类BaseDerivate1...... BaseDerivateN我的部分代码是通用的,并通过 define 访问使用的类来支持任何子类BASE_DERIVATE。
我现在需要添加一个静态函数,子类可以声明但不必声明。对于声明的派生类StaticFunc(),我想调用它。在所有其他情况下,我想调用回退函数Base::StaticFunc()。调用如下所示:
#define BASE_DERIVATE BaseDerivate1 // or some other child class
// somewhere else:
BASE_DERIVATE::StaticFunc();
所以我故意在这里使用名称隐藏。StaticFunc永远不会从类中调用。我的问题是:C++ 标准是否支持这一点,或者这会导致某些编译器出现编译器错误。另外:有没有更好的方法来做“静态继承”?然而,我坚持定义BASE_DERIVATE概念。