c – 有没有办法标记(在编译时)签名与基本签名不匹配的“重写”方法?

前端之家收集整理的这篇文章主要介绍了c – 有没有办法标记(在编译时)签名与基本签名不匹配的“重写”方法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
基本上,我想在我的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关键字来捕获我糟糕的实现.是否有任何关键字如“覆盖”被引入C,或者我们是否坚持使用#define覆盖虚拟以显示我们的意图? (实际上,我不这样做 – 我讨厌使用预处理器来“扩展”语言).

解决方法

如果你不能等待C 0x,Visual C已经有了这个override关键字. (自2005年以来我相信).那里的语法是:
virtual int foo(int) override;

但是,你没有义务打字.它是一个非标准的微软扩展.

猜你在找的C&C++相关文章