很多人覺得C++學(xué)習(xí)起來比較困難,而且也并不看好C++,那究竟C++有哪些難點和優(yōu)勢呢?
1、知識點廣泛而且難度高。按照幾年前Scot Mayer在Effective C++中對C++的定義來看,C++是一門多范型語言,包括了C、面向?qū)ο缶幊毯头盒途幊獭3绦騿T需要正確理解很多基礎(chǔ)概念,比如,堆和棧的區(qū)別、指針、指針的指針、虛函數(shù)的內(nèi)部原理、繼承引發(fā)的對象內(nèi)存布局、多繼承引發(fā)的模棱兩可、模板以及編譯器推導(dǎo)、STL算法等。C++的內(nèi)容如此廣泛,因此每個知識點的學(xué)習(xí)和積累都不是件容易的事情, 自然誤用的情況常會發(fā)生。
2、C++打開了直接面向操作系統(tǒng)API編程的大門,因此使用C++完成工作,很多時候需要學(xué)習(xí)大量的平臺相關(guān)的API,這些API有的非常復(fù)雜。比如被稱為噩夢般的技術(shù),Windows提供的COM/COM+庫,其實就是需要了解一大堆基礎(chǔ)知識才能操縱好。再比如:面向接口編程、虛函數(shù)表、設(shè)計模式中的工廠模式、Windows DLL地獄的由來、Windows注冊表、序列化、Windows安全、RPC、IDL語言、支持腳本語言的自動化技術(shù)(IDispatch)、對象引用計數(shù)器,線程安全和套間和ATL模板技術(shù)等。
3、而在C++的演化過程中,因為缺乏商業(yè)公司的大力贊助,缺乏良好設(shè)計的跨平C++類庫,多數(shù)人只能使用標準C++庫,但跨平臺效果也不佳。直到近幾年Boost為代表的現(xiàn)代C++庫起到了很大的作用。同時,Java程序員早就享受著非常好的支持,SUN的豐富的JDK,大量活躍的開源社區(qū)(比如Apache) 對Java的推動也是非常明顯的。
4、C++程序員成長周期長,特別是中國很多靠做項目掙錢的成長型企業(yè)面對選用C++作為編程語言會有所顧慮。
5、優(yōu)勢同樣很明顯:假定程序員能很好的運用C++,那么程序可以獲得很高的性能,消耗較少的資源。在云計算時代,C++在很多關(guān)鍵業(yè)務(wù)上起到不可替代的作用,也為這個地球節(jié)能。舉個例子,我有一次要在美國服務(wù)器上部署一個JSF編寫的網(wǎng)站,安裝GlassFish失敗是因為虛擬機核心線程和進程的總數(shù)被限制,只能換成C++編寫的網(wǎng)站。這臺服務(wù)器還同時運行著C++編寫的TCP服務(wù)程序和NoSQL數(shù)據(jù)庫。
你覺得C++會被別的編程語言取代嗎?
引自:C++為什么不能被取代? 作者:程序員幫主
原文地址:http://www.weightlossorganic.com/article/2281409651875675.htm
關(guān)于一覽 | 聯(lián)系我們 | 用戶反饋
深圳市一覽網(wǎng)絡(luò)股份有限公司 版權(quán)所有 ©2006-2025 粵ICP備08106584號 增值電信業(yè)務(wù)經(jīng)營許可證:粵B2-20070017