有没有办法强制使用 C++11override
Visual C++ 2012 中的关键字?
(也就是说,如果我忘记说override
,然后我想得到警告/错误。)
C++11几乎有你想要的。
原来是override
关键字是更大提案的一部分(N2928 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2928.htm)其中还包括强制其使用的能力:
class A
{
virtual void f();
};
class B [[base_check]] : public A
{
void f(); // error!
};
class C [[base_check]] : public A
{
void f [[override]] (); // OK
};
The base_check
属性将使重写虚函数而不使用override
关键词。
还有一个hiding
属性表示函数隐藏基类中的函数。如果base_check
使用并且函数从基类中隐藏一个函数而不使用hiding
这是一个错误。
但大部分提案都被放弃了,只有final
and override
特征被保留为“具有特殊含义的标识符”而不是属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)