C 成员可以同时声明为静态和虚拟吗?
在 C 中,成员不能同时声明为静态和虚拟。编译类似 static virtual member() 的声明;会导致错误。
但是,您可以使用以下方法实现类似的效果:
这是一个示例:
<code class="cpp">struct Object { static const TypeInformation& GetTypeInformation(); virtual const TypeInformation& GetTypeInformation() const; }; struct SomeObject : public Object { static const TypeInformation& GetTypeInformation(); virtual const TypeInformation& GetTypeInformation() const override; };</code>
这允许您在对象(object->)上调用 GetTypeInformation() ;GetTypeInformation()) 和类 (SomeObject::GetTypeInformation())。 Object::GetTypeInformation() 将返回基类实现,而 SomeObject::GetTypeInformation() 将调用重写版本。
以上是C成员可以同时是静态和虚拟吗?的详细内容。更多信息请关注PHP中文网其他相关文章!