您好,欢迎来到刀刀网。
搜索
您的当前位置:首页EffectiveC++ | 53 不要轻忽编译器的警告

EffectiveC++ | 53 不要轻忽编译器的警告

来源:刀刀网

条款53:不要轻忽编译器的警告

许多程序员习惯性的忽略编辑器警告。如:

class B{
public:
    virtual void f() const;
};

class D{
public:
    virtual void f()};

这里希望以 D::f 重新定义virtual函数 B::f ,但其中有个错误:B中的f是个const成员函数,而在D中它未被声明为const。

编译器会报错:warning: D::f() hides virtual B::f()

太多经验不足的程序员的反应是:“当然,D::f遮掩了B::f,那正是想象中该有的事!”

错,编译器试图告诉你声明于B中的f并未在D中被重新声明,而是被整个遮掩了(条款33描述为什么会这样)。

如果忽略这个编译器警告,几乎肯定导致错误的程序行为,然后是许多调试行为,只为了找出编译器其实早就侦测出来并告诉你的事情。

警告信息天生和编译器相依,不同的编译器有不同的警告标准。

草率编程然后倚赖编译器为你指出错误,并不可取。

在打发某个警告信息之前,请确定你了解它意图说出的精确意义。

请记住


欢迎关注公众号【三戒纪元】

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务