Видимость вложенного класса
У меня есть класс List и вложенный класс Node(на методы и поля не обращайте внимания)
template<typename T>
class List
{
public:
List();
void push_back(T data);
void lin();
int size() { return Size; }
T& operator[](const int index);
private:
template<typename T>
class Node {
public:
Node* pNext;
T data;
Node(T data = T(), Node* pNext = nullptr) {
this->data = data;
this->pNext = pNext;
}
};
int Size;
Node<T>* Top;
};
Я создаю функцию firstTask и хочу создать указатель типа Node
void firstTask(List<T>list1, List<T>list2) {
List<T> temp;
temp = list1;
Node* P1 = list1.Top;
}
Но функция не видит этот класс. Как мне сделать его видимым?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
typename List<T>::Node* P1 = list1.Top;
Только у вас Node - он таки шаблонный или нет? Т.е. может ли внутри List<int> быть, скажем, Node<double>? Если нет - не нужно его делать шаблоном внутри шаблона.