首页 > 解决方案 > 尝试重载模板类中的 >> 运算符时出现未定义的引用错误

问题描述

我正在尝试将模板类中的 >> 运算符重载为友元函数。当我想读取该类的对象时会出现问题;我收到以下错误:未定义对 `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;
}

标签: c++

解决方案


推荐阅读