[Effective C++讀書筆記]001_條款01_視C++為一個語言聯邦

來源:互聯網
上載者:User

   關於本條款,作者一直在向我們強調一個觀點,那就是不要把C++當做我們學過的單純語言,而要把C++當做一個具有多個獨立特性的聯邦語言。

1. C++由C發展而來,它相容一切C的文法特性,因此,C++國度裡的第一個聯邦——C語言,即面向過程的代表語言。

2. 從一開始,C++引入了物件導向的特性,即C++一開始的名稱C with  classes,這是C++的第二個聯邦——物件導向語言

3. 接著就是C++ Template,這部分文法特性使得C++支援泛型程式設計,因此,這可以作為C++的第三個聯邦——Template程式設計語言

4. 最後就是有名的STL,作為C++泛型程式設計的代表作,雖然在C++的語言架構之下,但是在使用的時候仍然需要遵守它自己的規則,即第四個聯邦——STL

   作者在建議我們學習C++時,不要把C++當做一種語言來學,而是當做N種語言來學,因為C++涵蓋的範圍太廣了,這導致了C++的極度複雜,同時導致了它的規則約定各種各樣,所以我們在用C++以一種工作方式切換到C++的另一種方式時,要能即時的適應不同使用方式的規約。

   總之,在我看來,C++本身已經成為所有語言的混合體,它涵蓋了面向過程、物件導向、函數式、範式、元編程形式的語言。同時,我個人也總結了一句來形容C++的一句話:

C++語言是一個十分靈活的語言,它有一堆文法約束,但是也提供瞭解除這些約束的方法,因此,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.