我正在尝试从标准输出中截取“数据”(对于这个问题,我正在使用 cout)。同样对于这个问题,我正在使用 double,但程序应该能够处理任何原始数据类型。当我尝试编译我的代码时,我收到了这个错误:
未定义对 `std::ostream& SpyOutput::operator<< (double const&)' collect2 的引用:错误:ld 返回 1 退出状态
这是我的主要内容:
#include "SpyOutput.h"
#define endl '\n'
int main ( int argc, char *argv[], char *env[] ) {
double d1 = 12.3;
SpyOutput spy(&cout);
spy << d1;
return 0;
}
这是我的头文件:
#include <iostream>
using namespace std;
class SpyOutput {
private:
ostream* output;
public:
SpyOutput(ostream* os);
template <class T>
ostream &operator<<(const T &x);
};
这是我的实现文件:
#include "SpyOutput.h"
SpyOutput::SpyOutput(ostream* os){
output = os;
}
template <class T>
ostream& SpyOutput::operator<<(const T &x){
// SOME CODE GO HERE
return *output;
}
我已经用谷歌搜索了这个错误(和类似的),但没有找到可行的解决方案,提前感谢您可以提供给我的任何帮助或提示!:-)