2014-03-13 33 views
0

原始指針有什麼特別的含義嗎?C++中的原始指針是什麼?它們與普通指針有什麼不同?

正常指針變量和原始指針是否相同?

+3

[Google your title](https://www.google.co.il/search?q=raw+pointer+c%2B%2B&oq=raw+pointer+c%2B%2B&aqs=chrome..69i57j0l2j69i61。 1942j0j7&的SourceID =鉻&espv = 210&es_sm = 122&即= UTF-8)。 – Maroun

+0

最終指向StackOverflow:[指針,智能指針或共享指針?](http://stackoverflow.com/questions/417481/pointers-smart-pointers-or-shared-pointers)和'原始指針== '普通Pointers' –

+0

這則訊息可能回答你的問題:?指針,智能指針或共享指針] [1] [1]:https://stackoverflow.com/questions/417481/pointers-smart - 指針或共享指針 – stynr

回答

1

是的,原始指針是一個普通的指針。

1

依靠什麼你是合格的一個「正常」的指針,原始指針是這樣寫的:

int* rawptr; 

用C++ 11,我會建議,以避免它,只要它有可能。改用std :: unique_ptr。

+0

那麼std :: unique_ptr :: get呢?看看http://stackoverflow.com/questions/8719119/bad-practice-to-return-unique-ptr-for-raw-pointer-like-ownership-semantics和http://stackoverflow.com/questions/ 8706192 /使用哪種指針做什麼時 – Matthias

3

的原始指針是完全正常的指針一樣,他們可以這樣寫:

type * pointer_name = & variable_name; 

由於C++ 11,我們有一些特殊的指針,所謂的「智能指針」。他們被稱爲「聰明」,因爲他們知道何時必須刪除使用過的內存。當你的程序中沒有其他東西使用這塊內存時,他們就會這樣做。有3種類型的智能指針在C++ 11:

unique_ptr<typename> pointer_name; 
weak_ptr<typename> pointer_name; 
shared_ptr<typename> pointer_name; 

你可以閱讀更多有關使用這些類型的指針here的。

+1

'smart_ptr'?從來沒有聽說過。那麼'unique_ptr'呢? – Thanatos

+0

對不起@Thanatos,謝謝你的評論。我在想別的事情,那就是結果。 :)) – Victor