gpt4 book ai didi

c++ - 如何强制执行 'override' 关键字?

转载 作者:IT老高 更新时间:2023-10-28 14:00:56 27 4
gpt4 key购买 nike

有没有办法强制在 Visual C++ 2012 中使用 C++11 override 关键字?

(即,如果我忘记说 override,那么我想得到一个警告/错误。)

最佳答案

C++11 几乎拥有你想要的。

最初,override 关键字是一个更大的提案 (N2928) 的一部分,其中还包括强制使用它的能力:

class A
{
virtual void f();
};

class B [[base_check]] : public A
{
void f(); // error!
};

class C [[base_check]] : public A
{
void f [[override]] (); // OK
};

base_check 属性会导致在不使用 override 关键字的情况下覆盖虚函数。

还有一个 hiding 属性表示函数隐藏基类中的函数。如果使用了 base_check 并且一个函数在没有使用 hiding 的情况下从基类中隐藏了一个函数,这是一个错误。

但是大部分提案都被放弃了,只保留了 finaloverride 功能,作为“具有特殊含义的标识符”而不是属性。

关于c++ - 如何强制执行 'override' 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13223277/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com