c++ - 尝试重载模板类中的 >> 运算符时出现未定义的引用错误
问题描述
我正在尝试将模板类中的 >> 运算符重载为友元函数。当我想读取该类的对象时会出现问题;我收到以下错误:未定义对 `std::istream& operator>>( std::istream&, ContBancar&)'。我检查了这篇文章(为模板类重载了朋友运算符<<),并尝试了下面代码中的第二种方法。
//ContBancar.h
//included all the necessary libraries
template<class T> class ContBancar;
template<class T> istream& operator>>(istream&, ContBancar<T>&);
template<class T>
class ContBancar {
string detinator;
string dataDeschidere;
T sold;
public:
ContBancar(string det="DefaultDestinatar", string data="NoData", T sol=T(0)):detinator(det),dataDeschidere(data),sold(sol){}
friend istream& operator >> <T>(istream &, ContBancar<T> &);
};
//ContBancar.cpp
#include "ContBancar.h"
template <class T>
istream & operator>>(istream &in, ContBancar<T> &ob)
{
in>>ob.detinator;
in>>ob.sold;
in>>ob.dataDeschidere;
return in;
}