More Effective c++筆記

條款1  引用(references)和指針(pointer)的區別

    當你知道你需要指向摸個東西,而且絕不會改其指向其他東西,或者當你實現一個操作     符而且其語法需要有pointers達成,你就應該選擇reference,任何其他時候,請採用         pointers

    錯誤代碼 char *pc = 0;

                   char &rc = *pc;  //未知的錯誤

條款2 最好使用c++轉型操作符

   1.舊式c允許任何類型的轉換很不科學,比較危險

   2.舊式的c風格意圖難以辨別,比如 a = X(i); 這個到底是函數的調用呢,還是一個類型         強轉呢     

    所以最好使用c++特有的轉型操作符,

   a: static_cast(基本上擁有於c舊式轉型的威力與意義,一級同樣的制),

   b:const_cast(用來改變表達式中的常量性和變易性colatileness),

   c:dynamic_cast(用來執行集成體系[安全的向下轉型或者跨系轉型動作],失敗返回null),

   d:reinterpret_cast(轉換函數指針,移植性不好)

3.絕對不要以多態方式處理數組

   主要原因是基類的數組存放子類的對象,數組指針會以基類內存模型讀取數據,會發      生截斷子類的數據,可以用基類對象指針數組



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章