我正在使用 astd::shared_ptr
指向一个节点
template<typename T>
class A
{
class Node
{
T data;
std::shared_ptr<Node> link;
Node(T data, std::shared_ptr<Node> link);
};
void push(T data);
std::shared_ptr<Node> top;
};
template<typename T>
A<T>::Node::Node(T data, std::shared_ptr<typename A<T>::Node> link) :
data(data), link(link)
{
}
template<typename T>
void A<T>::push(T item)
{
if (top == nullptr)
{
top = std::make_shared<typename A<T>::Node>(new typename
A<T>::Node(item, nullptr));
}
else
{
top = std::make_shared<typename A<T>::Node>(new typename A<T>::Node(item, top));
}
}
生成的声明和定义导致编译器错误
严重性代码描述项目文件行抑制状态错误 C2664 'Stack::Node::Node(const Stack::Node &)':无法将参数 1 从 'Stack::Node *' 转换为 'const Stack::Node &' 内存901
我需要更改哪些内容才能符合<memory>
?