У меня проблемы с функцией моего друга в классе шаблона. По какой-то причине ему не нравится тот факт, что я пытаюсь использовать переменную типа T в операторе, перегружающем функцию друга.
#include <iostream>
#include <fstream>
#include <string>
template <typename T>
class LL
{
struct Node
{
T mData;
Node *mNext;
Node();
Node(T data);
};
private:
Node *mHead, *mTail;
int mCount;
public:
LL();
~LL();
bool insert(T data);
bool isExist(T data);
bool remove(T data);
void showLinkedList();
void clear();
int getCount() const;
bool isEmpty();
friend std::ofstream& operator<<(std::ofstream& output, const LL& obj)
{
Node* tmp;
if (obj.mHead != NULL)
{
tmp = obj.mHead;
while (tmp != NULL)
{
output << tmp->mData << std::endl; // "tmp->mData is causing the error
tmp = tmp->mNext;
}
}
return output;
}
};
Это класс связанного списка, и мне нужна перегрузка оператора функции-друга, чтобы в основном позволить мне выводить любой конкретный список объектов в текстовый файл. Я надеюсь, что кто-то может мне помочь.