42 lines
606 B
C++
42 lines
606 B
C++
// 友元函数模板
|
|
/*
|
|
格式 :
|
|
template <typename T>
|
|
friend 返回值类型 函数名(T &参数名);
|
|
*/
|
|
#include <iostream>
|
|
using namespace std;
|
|
|
|
template <typename T>
|
|
class A
|
|
{
|
|
// 友元函数模板,声明的友元函数名不需要加<>空泛型
|
|
template <typename U>
|
|
friend void show(A<U> &a);
|
|
|
|
private:
|
|
T item;
|
|
|
|
public:
|
|
A(T item)
|
|
{
|
|
this->item = item;
|
|
}
|
|
};
|
|
|
|
template <typename U>
|
|
void show(A<U> &a)
|
|
{
|
|
cout << "template friend item is: " << a.item << endl;
|
|
}
|
|
|
|
int main()
|
|
{
|
|
A<int> a(15);
|
|
show(a);
|
|
|
|
A<float> b(15.5);
|
|
show(b);
|
|
|
|
return 0;
|
|
} |