1. 泛型指針
泛型指針有多種含義。
(1) 指void*指針,可以指向任意數據類型,因此具有“泛型”含義。
(2) 指具有指針特性的泛型數據結構,包含泛型的迭代器、智能指針等。
廣義的迭代器是一種不透明指針,能夠實現遍歷訪問操作。通常所說的迭代器是指狹義的迭代器,即基於C++的STL中基於泛型的iterator_traits實現的類的實例。
總體來說,泛型指針和迭代器是兩個不同的概念,其中的交集則是通常提到的迭代器類。
2. 原生指針就是普通指針,與它相對的是使用起來行為上象指針,但卻不是指針。
說“原生”是指“最簡樸最基本的那一種”。因為現在很多東西都抽象化理論化了,所以“以前的那種最簡樸最基本的指針”只是一個抽象概念(比如iterator)的表現形式之一。
3. 智能指針是C++裡面的概念:由於 C++ 語言沒有自動內存回收機制,程序員每次得自己處理內存相關問題,但用智能指針便可以有效緩解這類問題。
引入智能指針可以防止出現懸垂指針的情況
一般是把指針封裝到一個稱之為智能指針類中,這個類中另外還封裝了一個使用計數器,對指針的復制等操作將導致該計數器的值加1,對指針的delete操作則會減1,值為0時,指針為NULL
1. 泛型指針
泛型指針有多種含義。
(1) 指void*指針,可以指向任意數據類型,因此具有“泛型”含義。
(2) 指具有指針特性的泛型數據結構,包含泛型的迭代器、智能指針等。
廣義的迭代器是一種不透明指針,能夠實現遍歷訪問操作。通常所說的迭代器是指狹義的迭代器,即基於C++的STL中基於泛型的iterator_traits實現的類的實例。
總體來說,泛型指針和迭代器是兩個不同的概念,其中的交集則是通常提到的迭代器類。
2. 原生指針就是普通指針,與它相對的是使用起來行為上象指針,但卻不是指針。
說“原生”是指“最簡樸最基本的那一種”。因為現在很多東西都抽象化理論化了,所以“以前的那種最簡樸最基本的指針”只是一個抽象概念(比如iterator)的表現形式之一。
3. 智能指針是C++裡面的概念:由於 C++ 語言沒有自動內存回收機制,程序員每次得自己處理內存相關問題,但用智能指針便可以有效緩解這類問題。
引入智能指針可以防止出現懸垂指針的情況
一般是把指針封裝到一個稱之為智能指針類中,這個類中另外還封裝了一個使用計數器,對指針的復制等操作將導致該計數器的值加1,對指針的delete操作則會減1,值為0時,指針為NULL
void*指針不能解引用。。。
普通指針的類型本身就攜帶著訪問那個對象的方法之一。。
沒有類型是無法訪問那個對象的。。