在以下示例中:
class A {
public:
virtual ~A() { std::cout << "~A" << std::endl; }
};
class B : public A {
public:
virtual ~B() override { std::cout << "~B" << std::endl; }
};
class C : public B {
public:
~C() override { std::cout << "~C" << std::endl; }
};clang-tidy对B类发出以下警告
‘虚拟’是多余的,因为这个函数已经声明为‘覆盖’
从类virtual中删除B关键字似乎允许调用链中的所有析构函数,但我希望确保没有遗漏任何内容。
发布于 2020-01-21 01:28:38
从具有virtual的函数中删除override不会以任何方式改变程序的含义。这就意味着关键字是多余的(在这个上下文中)。如果没有移除,移除就不允许任何东西。
https://stackoverflow.com/questions/59832985
复制相似问题