在 C 中,不可能直接定义静态和虚拟的成员函数。尝试声明“静态虚拟成员()”时,编译器将发出错误。但是,有一些技术可以实现等效功能。
要模拟静态虚拟成员函数的行为,请考虑以下方法:
<code class="cpp">struct Object { struct TypeInformation; static const TypeInformation &GetTypeInformation() { return GetTypeInformationImpl(); } protected: virtual const TypeInformation &GetTypeInformationImpl() const = 0; };</code>
这里,GetTypeInformation()函数被定义为静态,并返回对TypeInformation类型的常量引用。然而,该函数的实际实现是通过受保护的虚函数 GetTypeInformationImpl() 委托给派生类的。
以上是C 中的静态成员函数可以是虚拟的吗?的详细内容。更多信息请关注PHP中文网其他相关文章!