你懂得C++越多,它就伤害你越深

前些天有个朋友问我,要不要去读读《Effective C++》,我忽然给出一个建议:不要读,最多看一下目录就好了。


作为一本非常受欢迎的C++教材,我为什么要建议朋友不要读呢?事后我反思了一下我的想法:《Effective C++》其实是通过教授你技巧,而让你在深渊方向越走越深。精通C++的程序员常常会写出一万行规模的class,以及继承派生关系犹如蜘蛛网的classes,然后以代码仍然能稳定运行而自诩。

这根本就是本末倒置。与其写出复杂的代码勉强能运行,我倒是宁愿代码在变得复杂之前就不稳定!然后程序员被烫了手,就知道代码要写得简洁了。

《Effective C++》可以让你在初期避免被烫手,让你能够写出较大复杂度的程序而不出错;这种技巧怎么说呢,也不是没用,但是大多数人实际上会滥用这种技巧。把本该用设计和架构来解决的问题,硬生生用技巧给掩盖了。


正确的使用C++的方法,应该是C with class,这是C++的本源。构造和析构函数,是C++最有价值的部分。高深的技巧比如copy constructor、shared_ptr、操作符重载、私有继承、多继承,长远来看将使代码变得复杂而难以维护。想想ANSI C的程序员,他们是怎么做事的,有了class已经强大太多了,不要贪心!


作为佐证:Tiobe的语言排名里面,C排到第一了,而C++却长期下降。

我认为以《Effective C++》为代表的技术取向,要为C++的这种失败担负一些责任。


原文地址:https://www.cnblogs.com/hehe520/p/6330384.html