基本上,我希望在我的 C++ 代码中使用其 override
关键字的 C# 编译器功能。
class Base
{
virtual int foo(int) const;
};
class Derived : public Base
{
virtual int foo(int); // wanted to override Base, but forgot to declare it const
};
众所周知,上面的代码可以正常编译,但会产生一些奇怪的运行时行为。我希望我的 C++ 编译器能够使用 C# 的 override
关键字之类的东西来捕获我糟糕的实现。是否有像“override”这样的关键字被引入到 C++ 中,或者我们是否坚持使用 #define override virtual
来显示我们的意图? (实际上,我不这样做——我讨厌使用预处理器来“扩展”语言)。
最佳答案
据我所知,这在当前标准下是不可能的。你可以在即将到来的 C++0x 中做到这一点。有关更多详细信息,请参见此处:Explicit virtual function overrides
关于c++ - 有没有办法标记(在编译时)签名与基本签名不匹配的 "overridden"方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3887674/