c ++智能指针和传递给函数

时间:2015-03-23 00:32:27

标签: c++ pointers

我正在学习智能指针,并对某些事情感到困惑。假设我有一个像这样的链表结构

struct Node {
  shared_ptr<Node> next;
  int data;

  Node(int val): next(nullptr), data(val) {}
};

将下一个保存为shared_ptr是否足够好。我认为它应该是unique_ptr对吗?

也在主要我创建头部如下:

auto head = make_shared<Node>(4);

再次,这应该是make_unique()对吗?现在我把这个脑袋传递给了许多不同的功能。那么该功能的签名应该是什么?我读到智能指针不应该传递给函数(由于性能原因,基本上它没有意义)。所以记住我如何通过上面创建的头?我在任何函数中使用head的唯一方法是为它创建一个指针curr,然后使用它迭代列表。     auto curr = head;

0 个答案:

没有答案