C ++中类似Java的注释

在C ++中是否有类似Java的注释?

例如,@ Override注释标记一个函数,它覆盖另一个函数,如果不是,它将在编译时给出错误。

我在C ++中寻找这样的东西。

C ++ 0x将具有此function,您可以在其中显式指定成员函数是否要覆盖基类的函数,使用编译器生成的默认实现等等。

C ++ 11提供了对“通用属性”的支持,可以将其视为Java注释的超集,因为它们可以仅应用于变量/函数,也可以应用于语句。 但是C ++ 11只定义了通用属性的语法,而不是用户定义它们的方法。

本文概述了广义属性: http : //www.codesynthesis.com/~boris/blog/2012/04/18/cxx11-generalized-attributes/

根据http://gcc.gnu.org/projects/cxx0x.html,GCC在 4.8版本中支持此function

为了实现对用户定义属性的支持,编译器插件很有前途,特别是基于高级语言集成,如https://fedorahosted.org/gcc-python-plugin/

有C ++ 0x,它有覆盖’annotation’。 或者,如果您想要实现更多的Java“接口”类似代码,如果您不实现方法,则可以使用抽象类:

class Base { public: virtual void foo() = 0; }; class Extended : public Base { public: void foo2() { cout << "hi" << endl; }; int main() { Extended e; e.foo(); } 

如果不在基类中覆盖foo,则会导致编译器错误。 然而,问题是基类不能拥有它自己的实现。

语言中没有任何内容可供选择。 您可能希望的最好的是特定于编译器的选项。 我首先检查编译器的“pragma”文档。