模板类重载<<运算符

写了一个Matrix模板类,需要重载<<,

1、需要友元函数

2、需要此函数的实现在.h中(本人试验出来的,放在.cpp中编译不通过)

template <typename T>
struct Matrix {
T mat[16]; template<typename T> friend std::ofstream &operator<< (std::ofstream &out, const Matrix<T> &c); };

template<typename T> 
std::ofstream &operator<< (std::ofstream &out, const Matrix<T> &c)
{
for(int i=0; i<16;i++)
out<<std::fixed<<std::setprecision(6)<<c.mat[i]<<(i==15?"":";");
return out;
}
 
原文地址:https://www.cnblogs.com/coolbear/p/4664526.html