有没有可能在 C + + 中有一个既是 static
又是 virtual
的成员函数?显然,没有一种简单的方法可以做到这一点(static virtual member();
是一个编译错误) ,但是至少有一种方法可以达到同样的效果吗?
即:
struct Object
{
struct TypeInformation;
static virtual const TypeInformation &GetTypeInformation() const;
};
struct SomeObject : public Object
{
static virtual const TypeInformation &GetTypeInformation() const;
};
在实例(object->GetTypeInformation()
)和类(SomeObject::GetTypeInformation()
)上都使用 GetTypeInformation()
是有意义的,GetTypeInformation()
对于比较和模板都很重要。
我能想到的唯一方法包括编写两个函数/一个函数和一个常量,每个类或使用宏。
还有别的办法吗?