我是一個Java程序員,有一點C知識,想用C++入門,有人可以推薦一個很好的教程嗎?C++新手,幫我開始
也與任何幫助:
- 項目與
- 推薦閱讀
- 什麼IDE學到了什麼?我目前使用NetBeans
- 一般C++建議
我是一個Java程序員,有一點C知識,想用C++入門,有人可以推薦一個很好的教程嗎?C++新手,幫我開始
也與任何幫助:
取決於您的目標平臺,我使用Visual Studio作爲IDE。
與Java相比,C++的一般規則是它包含比Java更自由的地獄,特別是關於模板與泛型,堆棧與堆以及執行(或缺少)面向對象和原則。例如,C++提供封裝破解的朋友聲明,const_cast,在堆棧上分配對象,指針可以指向它們,模板比泛型等具有無限多的能力等。
另一個主要的東西,你將必須得到以前是資源管理。 C++不提供GC。您需要熟悉RAII(資源獲取是初始化),以及基於範圍的構建和銷燬如何工作以避免資源泄漏。
您還需要刷新標準模板庫(STL)。 STL比Java庫有更直接的方法 - 例如,std :: iostream類提供本地方法來從文件中提取浮點數,字符串等,而在Java中,您需要File和Scanner,儘管它是範圍更加有限 - 沒有GUI或基於目錄的組件,僅供初學者使用。
哦,順便說一句,嚴肅地說,你的C知識。它會傷害而不是幫助你。
的閱讀鏈接,在提供硅片是一個很好看。
我最大的和最常用的諮詢件將是熟悉的Boost庫和RAII熟悉(Resource Allocation is Initialization)和它生活!
我不是NetBeans的用戶,但如果你喜歡它,並且它是一個C++插件,那麼這可能是我建議你開始的。如果你不需要創建另一種環境,那麼你就無法在新語言的基礎上學習。話雖如此,我是一個Eclipse用戶,它的C++(CDT)插件相當不錯。
謝謝我曾經使用過一個Eclipse,作爲一個團隊,我一直堅持使用同一個IDE的每個人,但沒問題,但我習慣了netbeans。但是如果我不知道我有什麼奇蹟可以消蝕^ _^ – Gwilym 2010-08-17 15:50:37
獲取大學教科書風格的C++書籍,如Deitel and Deitel。最難的部分是在設計可重用的庫時學習語言的所有細節,但如果您只是將現有的部分拼湊在一起,如果您已經瞭解Java,那就不會太糟糕。聲明爲普通變量的對象,其指針以及需要學習的引用以及資源管理之間存在細微差別。一旦你掌握了這門語言,用Stroustrup和Meyers這樣的經典作品填補空白。
根據IDE而言,您應該嘗試儘可能多地包括Visual Studio,X代碼,Anjuta和Eclipse,並且看看您最喜歡什麼。你也許應該學習使用Make(或者SCons)和vi構建IDE的方法。
對於這個項目,你應該先堅持CUI,因爲沒有像Java那樣的GUI的標準實現,但是最終你想實現像Tetris或矩陣數學庫這樣的東西,這很適合面向對象。 wxWidgets和Qt是跨平臺的,如果你想讓它跨平臺,但你應該瞄準任何你感興趣的平臺。
。這本書也不在鏈接中,我使用它:
C++中面向對象編程作者:Robert Lafore,它假定零背景,這很容易。
。對於IDE Visual studio是我喜歡的初學者中常用的:)。
。作爲一個很好的例子,您可以嘗試爲「複數」創建一個類,該類具有自己的添加,刪除,乘法和除法成員函數。您將瞭解類的內部數據和函數的封裝,並運算符重載
例如:
int i1 = 5 ;
int i2 = 6 ;
int i3 ;
i3 = i1 + i2 ; //correct
complex c1.setreal(3) ; //here you learn about member functions of the class
complex c1.setimg(5) ;
complex c2.setreal(6) ;
complex c2.setimg(8) ;
complex c3 ;
c3 = c1 + c2 ;//wrong until you overload the operator +
對IDE的幾點建議:
好教程?
沒有教程建議,因爲教程很可能不會觸及更復雜的語言功能。獲得一本書。
項目
的Qt 4的學習,一旦你熟悉的語言,使用STL /模板/ Qt的任何項目。提升源代碼可能值得借鑑。
推薦閱讀
任何Bjarne的Stroustrup的書對C++的。沉重的閱讀,但作爲參考很好,關於設計模式的書也可能會有所幫助。
什麼IDE?我目前使用NetBeans
windows上的Visual Studio Express,Linux上的jEdit/Kate/mcedit/vim/emacs。
一般C++建議
瞭解如何使用外部構建系統(cmake的/ scons的/ GNU做),如何在不IDE工作,如何從命令行工作,並儘量避免在不標準編譯器特有的功能。
推薦閱讀
有效C++斯科特邁爾斯。
的C++ Primer Plus第6版在九月被釋放,2011年
對於推薦的閱讀,請http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list 。 – 2010-08-17 15:40:42
檢查NetBeans是否有C/C++插件(我非常確定它)。 – FrustratedWithFormsDesigner 2010-08-17 15:43:08
坦率地說,如果你想學習正確的C++,假裝你從來沒有學過Java或C。是的,它們有着相似的語法,但是它們做的事情不同以至於試圖應用Java或C中的慣例導致C++的災難。 – 2010-08-17 15:44:35