linux中模板类使用友元函数时注意:
1. 在linux下不仅要在类里面声明函数,注意类中友元函数前不要定义模板类,直接在函数名后面加<T(友元函数类名称)>
friend ostream& operator<< <T>(ostream& os, test1<T>& t);
2. 在类外面也需要声明友元函数(包括重载函数),并且前面需要定义模板类
#pragma once
#include <iostream>
using namespace std;
template<class T> class test1;
template<class T> ostream& operator<<(ostream& os, test1<T>& t);
template<class T>
class test1{
public:
friend ostream& operator<< <T>(ostream& os, test1<T>& t);
test1(T age);
void Show();
public:
static int a;
T age;
};