【发布时间】:2015-08-03 19:59:58
【问题描述】:
template<typename T>
struct Node{
ListNode(SkipListKind kind, const T& key);
std::shared_ptr<ListNode<T>> next;
}
一个指向节点的共享指针已经被初始化(称为节点),并且它的下一个成员变量被设置为 NULL。
node->next.reset(std::make_shared<ListNode<T>>(SkipListKind::PosInf, T{}));
错误: 错误:没有匹配的成员函数调用“重置”(共享指针)
在类型方面: std::shared_ptr>.reset(std::make_shared>)
我使用 .reset 是因为指针最初指向 NULL。 为什么我会收到此错误? 有人可以帮忙吗?
谢谢!
【问题讨论】:
-
您可以改用
swap,或者使用赋值。reset采用原始指针。 -
哦,对了。非常感谢先生!
标签: c++ pointers makefile initialization shared-ptr