我的Advanced C++老師已經打開了課程,學生可以提出我們想要的任何主題。什麼是一些很好的高級C++主題知道?我們已經介紹:我的老師應該在我的高級C++類中談論什麼? [需要的建議]
- 模板元編程
- 的STL(顯然)
- 介紹了Boost庫
請給建議的原因也是如此。
我的Advanced C++老師已經打開了課程,學生可以提出我們想要的任何主題。什麼是一些很好的高級C++主題知道?我們已經介紹:我的老師應該在我的高級C++類中談論什麼? [需要的建議]
請給建議的原因也是如此。
創建一個COW(Copy On Write)字符串類?
併發和線程管理?
1)例外安全+ RAII。因爲這是我發現C++與我所知道的其他語言非常不同的部分。如果您瞭解規則以及爲什麼要這樣設置規則,那麼在C++中執行異常處理更容易,尤其是在執行異常處理時如何從RAII中受益。
2)C++ 0x介紹。因爲我不能再等第四版的C++編程語言了;)如果你有機會學習一些有用的設施,你就可以爲轉換做好準備。
啊,我忘了提這個。 +1例外安全! – Josh 2010-04-23 02:08:47
+ Inf用於異常安全,經常被遺忘。 – msandiford 2010-04-23 02:21:43
最好使用'boost :: thread'或更好的使用'std :: thread' :) – AraK 2010-04-23 01:50:27
併發很重要,但我認爲它的學習方式與語言無關。還有更多有趣的事情可以在C++上專門介紹。 – 2010-04-23 02:04:57
其實,這也是我的榜單之首。我認爲這非常重要。 – 2010-04-23 02:13:05
從GOTW
一些案例研究多少模板元編程的都做了什麼?這應該是一個完整的過程,所以如果它引發了你的想象力,你可能想深入挖掘。深入研究模板編程會讓您在現代C++編程中有很長的路要走。
模式,真正的應用程序構建,應用程序架構設計等其他一切(你提到boost庫,STL等)都可以在自學的同時很容易地發現,但好的和合理的設計更難學。
我會說lambda,無論是在boost或C++ 0x。這不是人們自己最有可能找到的東西,但我認爲它可以顯着減少代碼和維護。 Plus以某種方式改變了編程的方式。此外,它還介紹了函數式編程。
例如,你很簡潔地使用一些奇怪的要求,可以進行排序集合:
std:: sort(begin, end, lambda::_1 + lambda::_2 > 0);
我還要補充的模板表達式。我現在正在和他們一起玩,他們是生成高效代碼的強大工具,同時保持與問題描述非常相似。另外,我不認爲其他語言具有類似的功能。http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Expression-template
目前還不清楚這是否覆蓋在現有的知識,使一些 「先進基礎」 是值得注意的:
和可能的GUI編程,儘管很可能這是一個單獨的課程。
我的老師是在C++標準委員會,所以他認爲所有這些都是「基本的」(儘管很重要)......我們在初學者的C++類中講述了這一切。 – 2010-04-23 02:11:54
這很好聽。我知道一些在初學者的C++課程中幾乎沒有學過課程的人! – Josh 2010-04-23 02:13:56
C++概念,如果最終被採納,它將能夠對模板進行類型檢查並獲得明智的錯誤消息。你可以通過Jeremy Siek和Gabriel Dos Passos和Bjarne Stroustrup來研究最近的論文。的C++在C++編譯器設計
另外,如果你只用C++開始了,並沒有來自純C,這可能爲w ORTH低電平方向行進,而不是一個高電平方向:
反射和RTTI。
什麼是COW字符串? – 2010-04-23 04:19:42
@ Goose Bumper擴大了COW並在答案中加了一個鏈接 – 2010-04-23 04:24:04