Effective C++

来源:互联网 发布:mac chrome ie插件 编辑:程序博客网 时间:2024/05/19 03:42

来自豆瓣:http://www.douban.com/review/1044618/

 

最近在读《Effective C++ 2/e》,不时被作者幽默的文字逗得发笑。可以这么说,这是我读过的最风趣的一本技术书。当然这也离不开侯捷大师精彩的翻译。如此轻松的翻下来,已经读完了全书的一半。当然,书中的内容都是基础性的C++内容,是每个C++程序员必须要掌握的知识。
  
   举几处作者幽默的行文:
  
  1.(P76)如你所见,别名(aliasing)问题会以变化多端的形貌出现,所以你不可以像鸵鸟一样,蒙着眼睛以为看不见就没事儿。或许你可以,但我们中的大部分是不可以的。
  
  2.(P123)下面是面向对象式的罗曼蒂克对话:
   Object A:亲爱的,不要变心啊!
   Object B:别担心,亲亲,我是永恒不变的(const)。
   但就像现实生活中的情况一样,A心里头暗自揣测:“B能够信赖吗?”而答案亦如现实生活一样,视B的天性而定;我的意思是视其member functions的构成而定。
  
  3.(P127)举个例子,看看以下函数,它传回一个String object:
  String someFamousAuthor()
  {
   switch(rand()%3)
   {
   case 0:
   return "Margaret Mitchell"; //著有"Gone with the Wind",一本真正的经典之作
   case 1:
   return "Stephen King"; //他的小说让数百万人不得安眠
   case 2:
   return "Scott Meyers"; //嘻嘻,这个人的事迹和其他作者不同
   }
   return ""; //我们永远到达不了这儿,但是在一个“必须传回数值”的函数中,所有路径都必须传回一个值,唉!
  }
  
  4.(P133)众所周知,所谓程序员是一个具有草率个性的种族。我并不是说你一定很草率或我很草率,但程序员如果没有一丁点(我真的可以说吗?)古里古怪的倾向,是很罕见的。
  
  5.(P134)要是真这么做的话,被众人以往应该是你最幸运的下场了。比较实际一点,你会被剥层皮或者是被判罚干10年苦差,负责为电熨斗和烤面包机写微芯片码(microcode)。
  
   现在好好听着:如果你写一个函数,传回所谓的dereferenced pointer,那么简直就是坐视内存泄漏(memory leak)的发生。
  
   6.(P137)即使拥有虚拟内存,inline行为所造成的程序代码膨胀现象会导致病态的换页(paging)行为(也就是所谓的thrashing现象),那会使你的程序慢得像蜗牛爬一样(不过倒是可以提供硬盘控制器一个好的运动机会)。