C++ 操作员<&书信电报;作为成员函数

C++ 操作员<&书信电报;作为成员函数,c++,C++,我试图弄明白为什么我不能调用重载运算符,因为您将运算符设置为函数模板,而函数参数不是模板类型。因此,无法解析模板参数。您需要使用模板参数调用它,例如: a1.operator<< <void>(cout); 或者只是让它成为一个普通函数,因为它看起来不像是一个模板: ostream& operator<<(ostream& o); ostream&operator因为ostream应该在左手边。您的operator阅读此:,特别注意公共运算

我试图弄明白为什么我不能调用重载运算符,因为您将运算符设置为函数模板,而函数参数不是模板类型。因此,无法解析模板参数。您需要使用模板参数调用它,例如:

a1.operator<< <void>(cout);
或者只是让它成为一个普通函数,因为它看起来不像是一个模板:

ostream& operator<<(ostream& o);

ostream&operator因为ostream应该在左手边。您的
operator阅读此:,特别注意公共运算符部分,以及“位移位运算符(用于流I/O)”。我有点怀疑你是想把一个方形的钉子塞进一个圆形的洞里,不久前就偏离了轨道。@IgorR。应该是这样,但这并不是这种方法失败的原因。
template <class T> ostream& operator<<(T&);
ostream& operator<<(ostream& o);