Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++11 错误C2679二进制'<<';:未找到接受类型为';的右操作数的运算符;T';(或没有可接受的转换)_C++11_Templates_Operator Overloading_Friend - Fatal编程技术网

C++11 错误C2679二进制'<<';:未找到接受类型为';的右操作数的运算符;T';(或没有可接受的转换)

C++11 错误C2679二进制'<<';:未找到接受类型为';的右操作数的运算符;T';(或没有可接受的转换),c++11,templates,operator-overloading,friend,C++11,Templates,Operator Overloading,Friend,我的模板类中的friend函数有问题。出于某种原因,它不喜欢我试图在运算符重载friend函数中使用类型为t的变量 #include <iostream> #include <fstream> #include <string> template <typename T> class LL { struct Node { T mData; Node *mNext; Node();

我的模板类中的friend函数有问题。出于某种原因,它不喜欢我试图在运算符重载friend函数中使用类型为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;
    }

};
#包括
#包括
#包括
模板
LL班
{
结构体类型
{
T-mData;
节点*mNext;
Node();
节点(T数据);
};
私人:
节点*mHead,*mTail;
国际计数;
公众:
LL();
~LL();
布尔插入(T数据);
bool-isExist(T数据);
bool-remove(T数据);
void showLinkedList();
无效清除();
int getCount()常量;
bool是空的();

friend std::ofstream&operator您测试的
LL
的哪个专业化?元素类型实际上有流操作符吗?它是我创建的一个名为Item的类。它有操作符吗
,我重新检查后发现没有。我想我已经添加了它。如果我真的将该重载添加到Item类中,它会工作吗?编辑:会es起作用了。好了;)你测试的
LL
的哪个专业化?元素类型真的有流式操作符吗?这是我创建的一个名为Item的类。它有操作符吗
我重新检查,结果发现没有。我想我添加了它。如果我将重载添加到Item类中,它会起作用吗?编辑:它会起作用.给你;)