Effective C++之编译器警告

本文强调了在C++编程中不应忽视编译器警告的重要性,通过一个实例展示了忽视警告可能导致的错误,即子类未正确重写基类的const成员函数。文章呼吁开发者将编译器警告视为错误来对待,追求0error(s),0warning(s)的高质量代码。

6.条款之不要忽略编译器的警告

我们有时候习惯性地忽略编译器的警告。通常认为问题很严重的话,编译器给我们一个错误而不是警告。这种想法对其他语言可能没有害,但是对C++却是很严重的问题。举个例子:

#include <iostream>

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

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


int main()
{
   return 0;
}

实现这样的效果,这里希望D::f重新定义virtul函数B::f,但是其中有个错误:B中的f是一个const函数,而在D中它没有被声明。

其中有的编译器就会发出警告。

注意:我们要严肃对待编译器发出的警告,尽量让我们的编译器0 error(s), 0 warning(s),而且不能过度依赖编译器的警告信息,比如在其他编译器,它的警告信息就会消除掉

例如

上面就会出现无警告信息,因为不同的编译器对待事情的态度比不相同

参考文献《Effective C++》作者 Scott Meyers 翻译 候捷

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值