版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Legends_Never_Die/article/details/82928259
template <class T> class person; //模板类的声明
template <class T>
void show1(person<T>& ); //友元函数的声明
template <class T>
class person
{
public:
T age;
T g;
public:
person(T a,T b)
{
age=a;
g=b;
}
friend void show1<T>(person<T> &k); //友元函数类内声明时在函数名后加上<T>
void show()
{
cout<<age<<" "<<this->g<<endl;
}
};
template <class T>
void show1(person<T>& k)
{
cout<<k.age<<endl;
}
int main()
{
person<int>p(1,2);
p.show();
show1(p);
return 0;
}
友元函数不是类的成员函数,它的定义必须在类外实现(实现时不加friend关键字)