C++失去競爭力了嗎?

來源:互聯網
上載者:User
網友“圖靈評論”的一篇“C++失去競爭力了嗎?《C/C++ User's Journal》停刊有感”(http://blog.csdn.net/turingbook/archive/2006/05/18/743389.aspx"),或者C++真的正走向衰退,就我個人而言,認為它因為如下幾點而不可避免地走下坡路:
  • 過於複雜。我認為這可是說是最複雜的一門語言了,初學者很難入門,當他們剛剛搞清楚指標和引用,又遇到建構函式和析構,然後又不得不弄清拷貝構造和賦值運算,總算有點入門了,偏偏還有public繼承和private、protected繼承之分,而且還允許多重繼承,等接觸到異常,又要花時間弄清建構函式中拋出異常會使哪些成員被正確析構、哪些資源會無法回收等諸多問題,最後又是模板、泛型……好象學習是沒有盡頭的,很容易讓人灰心。
  • 過於華麗。在C語言裡,如果你看到A=B+C,基本上可以肯定就是將B加上C賦值給A,而在C++裡,加號運算子和賦值操作符是可以被重載的,你看到的,也許遠不是那麼回事,不仔細閱讀ABC這三個類的聲明,就無法肯定……運算子的重載達到了無法無天的地步,對類的使用者造成很大的困惑;而模板的強大,很容易讓人摸不到北,看上幾個小時的代碼也未見到能懂一個複雜模板類到底想做什麼……
  • 容易出錯。指標是萬惡之源,儘管C++裡有了auto_ptr這個標準庫中的模板類來管理指標,但它的功能實在太弱,甚至於無法放置到STL容器中,而在多線程中,由於多處引用同一對象,如果不用模板來實現引用計數,基本上沒有人敢於delete一個資源……
  • 文法上的某些欠缺。舉例來說,C++允許子類覆蓋父類的同名函數,也允許重寫父類的虛函數(但不要求有任何諸如override的關鍵字),當基類改動了原來虛函數的名字,則編譯器不會有任何警告,而現在子類已經不再是重寫虛函數,而是聲明了一個新的函數(也許永遠不會被使用者調用到)。
  • 其他一些為了相容C而帶來的惡果……

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.