2015/11/13
今天敲稀疏矩阵(template <class T> class SparseMatrix)的时候,发现在函数里面声明的两个友元函数都出错了
报错的内容是:无法解析的外部变量……
// 原代码
friend std::ostream& operator<<(std::ostream& out, const SparseMatrix<T>& sm);
friend std::istream& operator>>(std::istream& in, SparseMatrix<T>& sm);
// 修改后
template <class T> friend std::ostream& operator<<(std::ostream& out, const SparseMatrix<T>& sm);
template <class T> friend std::istream& operator>>(std::istream& in, SparseMatrix<T>& sm);
// 在linux下应该使用
template <class T> class SparseMatrix; // 声明类
template <class T> std::ostream& operator<<(std::ostream& out, const SparseMatrix<T>& sm);
friend std::ostream& operator<< <T>(std::ostream& out, const SparseMatrix<T>& sm);
参考:http://blog.csdn.net/dongzhongshu/article/details/6200466