主题:C++友元模板 2
为什么下面的代码会提示出错啊!!!
我感觉提示的错误在friend A<T>& operator* <T>(T k, A<T>& a);
但我觉得这句话没有错的啊.
====================================================
#include <iostream>
using namespace std;
template<class T>
class A
{
friend ostream& operator<< <T>(ostream &os, const A<T>& a);
friend A<T>& operator* <T>(T k, A<T>& a);
public:
A()
{
i=3;
}
int i;
};
template<class T>
ostream& operator<<(ostream &os, const A<T>& a)
{
os<<a.i<<endl;
return os;
};
template<class T>
A<T>& operator*(T k, A<T>& a)
{
return a;
};
int main()
{
A<int> a;
cout<<3*a;
return 0;
}
我感觉提示的错误在friend A<T>& operator* <T>(T k, A<T>& a);
但我觉得这句话没有错的啊.
====================================================
#include <iostream>
using namespace std;
template<class T>
class A
{
friend ostream& operator<< <T>(ostream &os, const A<T>& a);
friend A<T>& operator* <T>(T k, A<T>& a);
public:
A()
{
i=3;
}
int i;
};
template<class T>
ostream& operator<<(ostream &os, const A<T>& a)
{
os<<a.i<<endl;
return os;
};
template<class T>
A<T>& operator*(T k, A<T>& a)
{
return a;
};
int main()
{
A<int> a;
cout<<3*a;
return 0;
}