显式覆盖虚函数

kun*_*ami 6 c++ overriding virtual-functions c++-cli

我刚刚发现,C++/CLI对标准C++的关键字不存在(AFAIK): override.

我对C++/CLI了解不多,所以,有人可以解释它包含在哪个目的,以及它是否是一个被添加到C++的理想功能?

wkl*_*wkl 12

override是Microsoft的特殊关键字扩展,可用于C++/CLI和Visual C++实现.它类似于@OverrideJava或overrideC#中的注释,并提供更好的编译时检查,以防万一你没有覆盖你想要的东西.

从第一个链接:

override表示托管类型的成员必须覆盖基类或基本接口成员.如果没有要覆盖的成员,编译器将生成错误.

编译本机目标时(无/ clr),override也有效.有关更多信息,请参阅覆盖说明符和本机编译.

override是一个上下文相关的关键字.有关详细信息,请参阅上下文相关关键字.

从C++ 11标准开始,说明override符现在是标准化关键字.支持仍然有限,并且根据Apache StdCxx的页面,override受GCC 4.7 +,Intel C++ 12.0+和Visual C++ 2012(Visual C++ 2005中的预标准化支持)的支持.