许多程序员常常忽略编译器发出的警告.毕竟,如果问题很严重,它才将会变成一个error,不是么?相对来说,这个想法可能在其它语言是无害的,但是在C++中,我敢打赌编译器的实现者对于对接下来会发生什么比你有更好的理解.例如,下面的错误是每个人都时不时会犯的: class B { public: virtual void f() const; }; class D: public B { public: virtual void f(); }; 1. 你对警告的理解可能是错的 你的想法是用D::f重新…