别看我是条咸鱼,但还是有着去信息学奥赛逛一逛的梦想的。于是就怂恿学校开奥赛班,买了奥赛培训书籍《信息学奥赛一本通》,然后仗着自己计算机水平在学校里算是好的开始旷课(???)。

在作为幽灵学员一两个月之后,今天终于下定决心来听了回课。本来因为没怎么翻书,所以对里面的代码不甚了解,今天看老师对着书讲课时煞是惊讶,因为书的封面上虽然写的是C++版,但里面的代码示例让我感觉梦回C89。除了用了下cin(大部分情况下他们用的是printf)和cout,还有new之外,剩下的东西基本都是C。然而C程序员都知道得在malloc之后free(这里没有看不起C程序员的意思),这本书在链表之中对链表的删除处理是直接把下下个节点的地址赋给此节点的下节点成员了事。我很好奇在编写这本书的时候他们究竟有没有考虑到内存泄漏的问题——或许他们根本不知道内存泄漏是什么?我不知道。我知道的是这本书的前言里写了:

本书有三大特点:

一是详略得当,主次分明。

C++中包含的内容较多,由于篇幅的兼职,不可能面面俱到,必须有所取舍。

所以你就把delete运算符删掉啦?好……有种……

其实这本书在某些地方还是有考虑到释放内存的,但是它用的是free()……没错,对new出来的内存free()……我没这么用过,会不会出大错误我不敢肯定,但是我对这些作者的C++水平现在已经抱有了深刻怀疑……

啊对了,说到水平,我再来引用书中的内容吧:

尽管本书主编是多年讲授C++课程的教师,有比较丰富的教学经验……

emmm……我还是不评论了吧。

还是希望国内的奥赛教材的作者们能好好的斟酌在书中要呈现的内容,不要再犯这些错误闹笑话了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注