2010-04-23 86 views

回答

0

創建一個COW(Copy On Write)字符串類?

+0

什麼是COW字符串? – 2010-04-23 04:19:42

+0

@ Goose Bumper擴大了COW並在答案中加了一個鏈接 – 2010-04-23 04:24:04

0

併發和線程管理?

14

1)例外安全+ RAII。因爲這是我發現C++與我所知道的其他語言非常不同的部分。如果您瞭解規則以及爲什麼要這樣設置規則,那麼在C++中執行異常處理更容易,尤其是在執行異常處理時如何從RAII中受益。

2)C++ 0x介紹。因爲我不能再等第四版的C++編程語言了;)如果你有機會學習一些有用的設施,你就可以爲轉換做好準備。

+0

啊,我忘了提這個。 +1例外安全! – Josh 2010-04-23 02:08:47

+1

+ Inf用於異常安全,經常被遺忘。 – msandiford 2010-04-23 02:21:43

12
  • 併發性。大多數學生不會介紹這一點,現代計算越來越需要它,因爲它們可以獲得更多的CPU。
+3

最好使用'boost :: thread'或更好的使用'std :: thread' :) – AraK 2010-04-23 01:50:27

+2

併發很重要,但我認爲它的學習方式與語言無關。還有更多有趣的事情可以在C++上專門介紹。 – 2010-04-23 02:04:57

+0

其實,這也是我的榜單之首。我認爲這非常重要。 – 2010-04-23 02:13:05

0

一些案例研究多少模板元編程的都做了什麼?這應該是一個完整的過程,所以如果它引發了你的想象力,你可能想深入挖掘。深入研究模板編程會讓您在現代C++編程中有很長的路要走。

+0

模板完全改變了我的程序。我還會添加預處理器,這是boost的方式來生成代碼。在我看來,預處理器經常被忽略 – Anycorn 2010-04-23 01:59:34

+0

我們深入到現代C++設計的第3章,所以仍然有更多可以完成的工作,但我寧願學習新的主題,並自己深入研究模板元編程。 – 2010-04-23 02:10:22

+0

@保險槓你幸運的傢伙,我希望有你的教授 – Anycorn 2010-04-23 02:14:37

0

模式,真正的應用程序構建,應用程序架構設計等其他一切(你提到boost庫,STL等)都可以在自學的同時很容易地發現,但好的和合理的設計更難學。

1

我會說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

0

目前還不清楚這是否覆蓋在現有的知識,使一些 「先進基礎」 是值得注意的:

和可能的GUI編程,儘管很可能這是一個單獨的課程。

+0

我的老師是在C++標準委員會,所以他認爲所有這些都是「基本的」(儘管很重要)......我們在初學者的C++類中講述了這一切。 – 2010-04-23 02:11:54

+0

這很好聽。我知道一些在初學者的C++課程中幾乎沒有學過課程的人! – Josh 2010-04-23 02:13:56

0

C++概念,如果最終被採納,它將能夠對模板進行類型檢查並獲得明智的錯誤消息。你可以通過Jeremy Siek和Gabriel Dos Passos和Bjarne Stroustrup來研究最近的論文。的C++在C++編譯器設計

4
  1. 後果
  2. 相關:出口關鍵字的失敗,爲什麼沒有人實現它
  3. 自定義的分配
  4. 放置新/刪除,當你真的想使用它們
  5. 一個C++垃圾收集器的
  6. 設計

另外,如果你只用C++開始了,並沒有來自純C,這可能爲w ORTH低電平方向行進,而不是一個高電平方向:

  1. 瞭解如何正確使用「易失性」
  2. 聯C++與其他語言(即在C中調用java或FORTRAN ++或反之亦然)
  3. 性能分析和代碼調整
0

反射和RTTI。

相關問題