Effective c++——9. 杂项讨论

杂项讨论

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


  • 严肃对待编译器发出的警告信息。努力在你得编译器的最高警告级别下争取 “无任何警告” 的荣誉。
  • 不要过度依赖编译器的报警能力,因为不同的编译器对待事情的态度并不相同。一旦移植到另一个编译器上,你原本依赖的警告信息有可能消失。

许多程序员会忽略编译器警告,但是有时候警告会产生运行时异常。例如下面这段代码:

class B {
public:
  virtual void f() const {
    std::cout << "i'm B" << std::endl;
  }
};

class D : public B {
public:
  virtual void f() {
    std::cout << "i'm D" << std::endl;
  }
};

B* pb = new D;
  pb->f();

编译器可能会说 warning: D::f() hides virtual B::f(),看上去这是理所应当的事情,但是实际
上它想告诉你,这并非是重写操作,这种名称掩盖会导致最终结果与期望不一的情况。

尽管写出一个完全没有警告的代码是十分困难的,但是你应该去理解这些警告的含义,并在完全理解后来判
断是否应该忽略这些警告,否则造成错误后很有可能就是警告造成的。

条款54: 让自己熟悉包括 TR1 在内的标准程序库

TR1 中的大部分在 c++11 以后都加入了 c++ 标准中。

条款55: 让自己熟悉 Boost

https://www.boost.org/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值