輕鬆讀《Effective C++ 2/e》

來源:互聯網
上載者:User

    最近在讀《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現象),那會使你的程式慢得像蝸牛爬一樣(不過倒是可以提供硬碟控制器一個好的運動機會)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.