【发布时间】:2012-08-15 10:02:02
【问题描述】:
我有一些课,比如
class object {
public:
virtual std::string name() const;
};
它提供了一些接口,我希望所有派生都覆盖方法name。
问题是,它没有被覆盖,编译时没有任何问题,但我在运行时遇到问题。
有没有办法强制方法覆盖?
编辑:我想在所有衍生品中强制执行覆盖,而不仅仅是直接后代!
【问题讨论】:
-
我怀疑这是否会正确构建。您应该会收到链接器错误。
-
是的,我没有打印定义。为什么?一切都与接口有关。
-
您是否考虑过使用 RTTI 代替?
-
@KerrekSB: 已经 std::string 并且没有被定义为 inlnie 作为 constexpr 应该会出错
-
我真的觉得这里有XY问题...
标签: c++ c++11 overriding virtual