原創|行業資訊|編輯:郝浩|2014-12-01 11:11:25.000|閱讀 2754 次
概述:C++是一門嚴謹的編程語言,但在指針使用、內存分配問題上因為較為復雜的特性讓很多人望而卻步。隨著C++標準的逐漸完善,現代C++的出現解決了以前的許多問題,但是C++的復興之路還任重而道遠…
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在過去的幾年里,我們談到了關于“C++的復興”。我們不得不承認微軟是這項運動中主要參與者,我記得在Craig Symonds和Mohsen Agsen在視頻中提到了這件事。
在2011年,微軟寫了許多文章來宣布C++的回歸,并且眾多微軟專家如Herb Sutter在很多會議上解釋了為什么C++會重新崛起,主要原因是現代C++的推廣使用。而同一時間。C++11標準的認可使我們重新把C++作為一門新的語言來討論。
然而,截至到2011年,C++已經有超過30年的歷史了。因此,讓開發人員相信關于新的C++已經簡化了過去許多令人失望的用法,而是使用了一種改進了C++代碼的全新方法不是一件容易的事情。
讓我們以內存管理為例,這也許是C++中最受爭議的地方。多年來,對象的分配是通過new這個關鍵字來完成,開發者必須牢牢記住在代碼中某些地方調用delete。“現代的C++”解決了這個問題并推進了共享指針的使用。
但是,關于現代C++的推廣光靠活躍的C++社區和知名專家是不夠的。有一句諺語是:“習慣成自然。”當你努力向某些人推介某個語言或者工具,他有可能覺得你有道理但是卻不會照著你想的做。
這就是在C++上發生的事情,我們中的許多人仍然堅持使用new和delete,而這種影響還要持續很多年,而且許多非C++的開發者也會一直通過調用復雜的內存分配方式來使用這門語言。
C++的過去影響了很多東西甚至從項目的創建之初,許許多多的開發者仍然認為這門語言非常復雜。
C++的過去是如何在影響著它?
為了發現這點,我們來做一個測試,我們在網絡上使用baidu搜索“C++對象分配”,查找第一個鏈接便是“C++中是怎樣分配堆對象的?唯一的方法就是用new…”。這很令人吃驚,而搜索頁前面談論共享指針、智能指針的文章幾乎沒有。
另一個有趣的測試是到到任何大學的圖書館去找一本關于C++的書,去閱讀關于對象分配的那一章節,你基本上不會找到關于“共享指針、智能指針”的介紹。
而C++開發者想要了解它們,一般查找的資源是來自于“C類”而不是現代C++。
如何預防C++的過去所帶來的影響?
這里并沒有特別有效的解決方案。我們可以希望C++編譯器通過發出一些關于最新更新的啟用和棄用警告,就象過去的字符串操作一樣(strcpy、strcat…),但這個解決方案也不是根本的解決之道。現代C++新技術的推動需要學習和實踐。
另外一個解決方案是將“C++”更名為“現代C++”,這個解決方案很簡單也很有趣。在網絡上搜索“現代C++”,那么在我們談論的現代C++的對象分配問題上,第一個鏈接就談論了“智能指針”。
因此,在未來的C++推廣之路上,我們可以提醒新的C++開發者,在網絡上查找關于C++的資料時,“現代C++”和“C++”會是兩個非常不同的搜索結果,前者代表C++的最新用法,而后者只代表過去。
本文翻譯自
轉載請注明“文章轉載自:慧都控件網”和原文地址//fc6vip.cn/article/2014/12/1/21882.html
【年終大促 巔峰盛“慧” 】促銷火熱進行中 iPhone 6 Plus、 iPhone 6、iPad Air等你拿 <<<<點擊查看
【FastReport VCL 5新版發布會 】2014-12-9 15:00網絡直播,免費參加 ,參加者買FastReport全線產品6折!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn