Ошибка присвоения указателю нового узла односвязного списка с++
Не компилится код реализации односвязного списка с++ (VS 2022). Если закоментить строку присвоения (в функции push_back) указателю head новый узел Node, то все работает, прошу помощи
template<typename T>
class List
{
public:
List();
~List();
void push_back(T data);
private:
template<typename T>
class Node
{
public:
Node* pNext;
T data;
Node(Node* pNext = nullptr, T data = T())
{
this->pNext = pNext;
this->data = data;
}
};
int Size;
Node <T>* head;
};
template<typename T>
List<T>::List()
{
Size = 0;
head = nullptr;
}
template<typename T>
List<T>::~List()
{
}
template<typename T>
void List<T>::push_back(T data)
{
if (head == nullptr)
{
*head = new Node<T>(data); // Если закомментить эту строку, то все компилится
}
}
int main()
{
List <int> lst;
lst.push_back(5);
return 0;
}