2013-05-06 72 views
0

我想使用智能指針而不是原始指針。 如何才能相應地轉換此功能?從原始指針轉換爲智能指針

Node * List::next(const Node * n) const { 
    return n->next; 
} 
+2

它通過使用智能指針試圖達到什麼目的? – 2013-05-06 21:14:31

+0

您不應該暴露您的數據結構的低級別。裸指針是好的,如果他們只用於私人。 – 2013-05-06 21:14:56

+2

智能指針用於管理您分配的資源。你給出的代碼片段與現有的原始指針工作,而不是分配它們,所以你真的不在正確的位置。你知道你想用智能指針做什麼嗎? – GreenCoder 2013-05-06 21:16:18

回答

6

像這樣:

Node * List::next(const Node * n) const { 
    return n->next; 
} 

至於我可以告訴函數next不會不執行任何所有權轉讓,因此並不需要的Node所有權的方式來關注自身對象,所以它不需要改變。 (它不需要是List的成員,或者它可以是static成員。)