2013-05-06 120 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成员。)