Item45 -- 清楚知道C++編譯器默默為我們完成和調用哪些函數
建構函式、拷貝構造、析構、賦值、取地址
Item46 -- 寧願編譯和串連時出錯,也不要執行時才錯
舉了個把月份抽象成類,通過類的機制使得在編譯和串連的時候能夠發現錯誤。這個有點太高深了,一般用不到。忽略。
Item47 -- 使用non-local static objects之前先確定它已有初值
可以使用單鍵模式解決,在使用的函式宣告一個static變數,第一次使用則初始化,以後則直接擷取了。
Item48 -- 不要對編譯器的警告資訊視如不見
C++真的是個難搞的語言,所以下面的這種情況只能見到一個就記一個了
class B{
public:
virtual void f() const;
};
class D: public B{
public:
virtual void f();
};
Warning: D::f() hides virtual B:f() |
這個編譯錯誤是說,B中的f()被掩蓋了,即無法使用const B* pb調用f()函數了
Item49 -- 盡量讓自己熟悉C++標準程式庫
沒的說,STL要熟悉,這個任重而道遠,現在主要是參考www.cplusplus.com的reference
如果有時間的話,還想看的就是《Effective STL》《STL源碼剖析》之類的書了
Item50 -- 加強自己對C++的瞭解
要讀兩本書,The Design and Evolution of C++, The Annotated C++ Reference Manual
等有了一定基礎和時間再看吧
後記:
Effective C++很早就看完了,不過現在回頭看,很多東西都值得再看一遍,我認為深入C++學習,這是一本必須要看的書,很多細節方面的東西,Scott Mayers都駕輕就熟的展現出來,哪天能夠把他整本書的思想全部用自己的話講出來,做到淺顯易懂,那麼C++算是精通了,現在還只能是粗略的記錄下自己認為的重點,所以這個目標還值得花上好幾年的努力。