有谁知道如何使这两个重载运算符共存?
#include<iostream>
template< typename T >
class A;
template< typename T >
std::ostream& operator<<( std::ostream& o, const A<T>& e );
template< typename T >
class A
{
A& operator <<( const A& e );
friend std::ostream& operator<< <>( std::ostream& o, const A<T>& e );
};
int main()
{
// program
return 0;
}
// def A<T>::A& A::operator <<( const A& e );
// def std::ostream& operator<< <>( std::ostream& o, const A<T>& e );
错误:
$ g++ prov.cpp -o prov
prov.cpp:13:33: error: declaration of ‘operator<<’ as non-function
prov.cpp:13:33: error: expected ‘;’ at end of member declaration
prov.cpp:13:36: error: expected unqualified-id before ‘<’ token
我很抱歉我的英语不好。出于这个原因,我很少写。
问候和感谢!