声明时候是这么写的:friend istream &operator>> (istream &, inputBuff<T> &);
代码如下:
编译会有很多错误,
正确的做法如下:
先加上这三行在最前面
然后:
代码如下:
template
<
class
T
>
class inputBuff {
public:
inputBuff(size_t);
inputBuff();
size_t size() const;
void resize(size_t);
friend istream &operator>> (istream &, inputBuff<T> &);
friend ostream &operator<< (ostream &, const inputBuff<T> &);
private:
vector<T> inBuff;
} ;
class inputBuff {
public:
inputBuff(size_t);
inputBuff();
size_t size() const;
void resize(size_t);
friend istream &operator>> (istream &, inputBuff<T> &);
friend ostream &operator<< (ostream &, const inputBuff<T> &);
private:
vector<T> inBuff;
} ;
编译会有很多错误,
正确的做法如下:
先加上这三行在最前面
template
<
class
T
>
class
inputBuff;
template < class T > istream & operator >> (istream & , inputBuff < T >& );
tmeplate < class T > ostream & operator << (ostream & , const inputBuff < T >& );
template < class T > istream & operator >> (istream & , inputBuff < T >& );
tmeplate < class T > ostream & operator << (ostream & , const inputBuff < T >& );
template
<
class
T
>
class inputBuff {
public:
inputBuff(size_t);
inputBuff();
size_t size() const;
void resize(size_t);
friend istream &operator>> <T>(istream &, inputBuff<T> &);
friend ostream &operator<< <T>(ostream &, const inputBuff<T> &);
private:
vector<T> inBuff;
} ;
class inputBuff {
public:
inputBuff(size_t);
inputBuff();
size_t size() const;
void resize(size_t);
friend istream &operator>> <T>(istream &, inputBuff<T> &);
friend ostream &operator<< <T>(ostream &, const inputBuff<T> &);
private:
vector<T> inBuff;
} ;