天天看點

C++接口設計原理中二重指針的應用

C++接口設計原理中二重指針的應用

二重指針的重要用途主要有三大塊,一是對象深度克隆(Object Deep-Clone)算法,二是C++接口設計(C++ Interface)的實作,三是OOP在記憶體池(Memory Disk)的實作技術中的應用。指針的本身都是一個記憶體位址,是一個整型數字,對于取指針指向的位址的值的情況,指針的類型可以任意轉換。對于指針偏移計算,特别是把指針當數組用的情況,如果忘記偏移計算之前必須把指針的類型轉稱到它指向的對象的類型,偏移的錯誤會導緻偏移後的指針取出來的對象的值是錯誤的。指針類型直接決定指針偏移的運算量。指針當做數組用的做法存在隐式的指針偏移量的計算。很多人沒有注意到這個細節,這一粗心導緻一系列的記憶體通路錯誤。正是利用指針本身都是一個記憶體位址的特性,可以用父類型的指針取派生類型的對象的值,這也是C++接口設計的原理之一。