#include <iostream>
using std::cout;
using std::endl;
template <typename T>
class ManyFriend
{
private:
T item;
public:
//ManyFriend(const T &i) : item{i} {}
ManyFriend(const T &i)
{
item=i;
} /*这个函数定义等价于ManyFriend(const T &i) : item{i} {}*/
template <typename C, typename D> friend void show2(C &, D &);
};
template <typename C, typename D>
void show2(C &c, D &d)
{
cout << c.item << ", " << d.item << endl;
}
int main()
{
ManyFriend<int> hfi1(10);
ManyFriend<int> hfi2(20);
ManyFriend<double> hfdb(10.5);
cout << "hfi1, hfi2: ";
show2(hfi1, hfi2);
cout << "hfdb, hfi2: ";
show2(hfdb, hfi2);
return 0;
}
C++ Primer Plus 14.4.9 模板类的非约束模板友元函数
最新推荐文章于 2025-12-09 23:06:20 发布
331

被折叠的 条评论
为什么被折叠?



