Так же, как я получаю одно решение, у меня есть другая проблема.Видите, у меня есть заявление о дружбе в моем шаблонном связанном списке, и мне нужно, чтобы он был моим другом для доступа к моей частной вложенной структуре Node.
template <typename T>
class LL;
template <typename T>
std::ofstream& operator<< (std::ofstream& output, LL<T>& obj);
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, LL& obj);
};
template <typename T>
std::ofstream& operator<<(std::ofstream& output, LL<T>& obj)
{
Node* tmp;
if (obj.mHead != NULL)
{
tmp = obj.mHead;
while (tmp != NULL)
{
output << tmp->mData << std::endl;
tmp = tmp->mNext;
}
}
return output;
}
Обратите внимание, что мне нужна команда "tmp-> mData"часть в оператор Friend << определение функции для работы с шаблоном.К сожалению, единственные ошибки, которые я получаю сейчас, находятся в определении функции друга.Он не понимает «Узел», несмотря на то, что это функция друга.Я очень смущен.Надеюсь, кто-нибудь может мне помочь. </p>