基本上,我希望在我的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来表明我们的意图?(实际上,我不这样做-我讨厌使用预处理器来”扩展“语言)。
发布于 2010-10-08 13:58:14
如果你不能等待C++0x,Visual C++已经有了这个override关键字。(我想是从2005年开始)。这里的语法是:
virtual int foo(int) override;但是,您不必键入它。这是一个非标准的微软扩展。
发布于 2010-10-08 12:37:19
据我所知,这在目前的标准下是不可能的。您可以在即将发布的C++0x中完成此操作。有关更多详细信息,请查看此处:Explicit virtual function overrides
https://stackoverflow.com/questions/3887674
复制相似问题