注:標記爲社區wiki。基本C++習語/技巧
最近幾天,我意識到我對C++瞭解的知之甚少。
除了:
- 使用STL
- 實現RAII
- 實現Ref計數智能指針
- 寫我自己的基於策略的模板類
- 運算符重載< <的樂趣
一個好的C++程序員必須知道哪些其他技術?
謝謝!
注:標記爲社區wiki。基本C++習語/技巧
最近幾天,我意識到我對C++瞭解的知之甚少。
除了:
一個好的C++程序員必須知道哪些其他技術?
謝謝!
近年來似乎C++在各個方面已經離開了OO設計...... – einpoklum 2015-09-11 22:46:32
(幾乎沒有一個必知,但仍然有用)寫作領域特定語言操作符重載和模板元編程(見Boost.Spirit一個很好的例子) - 但這也是讓你在腳下輕鬆射擊自己的那種東西。
前兩個是必須知道的一個好的C++程序員。 「好的C++程序員」不會爲了好玩而重載操作符。
基礎:
也有用:
有用的brainfucking或在特殊情況下:
我用來改進我的C++的方式是讀取leveldb的源代碼。因爲leveldb是產品級代碼。所以你可以從真實的產品中學習cpp成語和設計模式。讓我來舉幾個例子
leveldb使用Pimpl成語,幾乎在它的所有頭文件中,比如table.h,table_build.h,write_batch.h。您可以從代碼直接
性LevelDB使用許多OO設計模式,如構建模式學習,桌上有table_build類建表,塊有block_build類構建塊
性LevelDB也使用迭代器模式,迭代器使我們更方便地使用leveldb。
所以我認爲leveldb包含很多習慣用法或C++工程師應該知道的設計模式。
@anon實施RAII,當然。實現ref-counting智能指針?我希望已經存在的實現足以防止這種需要。 – 2010-02-26 22:19:22