未定义的对运算符的引用<<

时间:2015-04-09 09:01:02

标签: c++ operator-overloading

我有一个类,我正试图直接流入(我没有将类流式传输到ostream,但实际上是将文本流式传输到类中)通过覆盖<<运营商。该类基本上是使用的,因此我们可以为项目的不同部分打开和关闭调试输出。但是,当我尝试使用运算符时,我得到一个未定义的引用。

这就是我的.h作为班级的公共成员

template <typename T>
DebugOutputStreamer& operator<<(T const& value);

这是我的.cpp

template <typename T>
DebugOutputStreamer& DebugOutputStreamer::operator <<(T const& value)
{
    if(m_Enabled)
    {
        if(m_UseColors)
        {
            std::cout << m_OuputColour << value << ConsoleColour::FG_DEFAULT;
        }
        else
        {
            std::cout << value;
        }
    }
    return this;
}

然而,当我尝试流式传输“Hello”时,我正在

main.cpp:(.text+0x564): undefined reference to `DebugOutputStreamer& DebugOutputStreamer::operator<< <char [6]>(char const (&) [6])'

有人能告诉我我错过了什么吗?

0 个答案:

没有答案