2009年11月11日 星期三

c++ self testing

在網路上看到的幾個c++問題,個人覺得有一些還有點難,不過多懂點總是好的。

1. 什麼是virtual inheritance? 請舉例說明。
2. 什麼是virtual function? 什麼是pure virtual function?
3. pointer與reference的差別?
4. 什麼是static_cast, dynamic_cast, reinterpret_cast, const_cast? 他們之間的差異是?
5. run-time polymorphism與compile-time polymorphism的差異? 分別要如何達成?
6. 什麼是explicit constructor?
7. 什麼是template disambiguator? 請舉出例子。
8. 有沒有聽過boost or loki? 有沒有用過boost or loki? 請舉出例子。
9. 有沒有聽過CRTP (Curiously Recurring Template Pattern)與PBCP (Parametric Base Class Pattern)? 請寫出兩者的sample code並比較它們的差異。
10. 請問在C++中, struct與class最大的差異是?
11. 請問什麼是template partial specialization?
12. 什麼是type traits? 什麼是tag dispatch? 請以簡單的程式碼說明之。
13. 有聽過template metaprogramming嗎? 請舉例解釋之。
14. 什麼是SFINAE? 請解釋之。
15. 為什麼常常看到template的程式碼寫在hpp裡,而不是放在cpp檔中?
16. 什麼是functor? 用過(或寫過)任何的functor library嗎? 例如boost function/bind或是fast delegate?
17. std::list與std::vector的差異是什麼? std::map裡的資料結構是如何實作的?
18. 何謂copy constructor? 如何阻止一個class被copy?
19. virtual function是如何實作的? 什麼是vtbl?
20. 在template的宣告裡,typename與class的差異是? 為什麼有typename這個keyword?
21. 什麼是forward declaration?
22. 如何解決header file mutual inclusion的問題?
23. 什麼是templated class? 什麼是class template?
24. 什麼是wchar_t? 有沒有用過std::locale跟std::codecvt?
25. 用過那些c++ compiler? 有沒有聽過c++0x? 試舉出c++0x的新功能。

沒有留言: