Я создаю небольшой класс с именем Output ... Это должно быть чем-то, что облегчит мое программирование с точки зрения записи вывода (например, поддержка большего количества типов для вывода в stdout (например, QString) и так далее ...)
Пока это было хорошо, он работал с QString, но теперь я хотел, чтобы он принимал любой тип в качестве аргумента. Но при компиляции я получаю эту ошибку:
main.cpp: 16: ошибка: неопределенная ссылка на `Output & Output :: operator << (int) '</p>
Вот мои выходные файлы классов .h и .cpp:
.h
#ifndef OUTPUT_H
#define OUTPUT_H
#include <QObject>
#include <QTextStream>
class Output : public QObject
{
Q_OBJECT
public:
Output();
template <class _T> Output& operator<<(const _T& Text);
signals:
public slots:
};
extern Output out;
#endif // OUTPUT_H
.cpp
#include "output.h"
Output out;
Output::Output()
{
}
template <class _T> Output& Output::operator <<(const _T& Data)
{
QTextStream s(stdout);
s.setCodec("UTF-8");
s<<Data;
s.flush();
return *this;
}