C++学习总结(二十二)——类模板与友元(友元函数,友元类模板)

本文探讨了C++中的类模板与友元的关系,详细阐述了友元函数在类模板内外的使用规则,以及类模板作为友元函数和友元类模板的声明与定义技巧。
摘要由CSDN通过智能技术生成

一.类模板与友元

当友元函数在外部定义时,友元函数以及所属的类必须声明。 友元函数放在类模板的内部时,友元函数可以直接调用,无需加类限定符。

#include<iostream>
#include<string>
#include<vector>
using namespace std;

template<class T>
class A
{
	
public:
	friend void print(A<T> *aa)//声明友元函数
	{
		cout << (*aa).x << ' ' << (*aa).y << endl;
	}
	friend void print(A<T> &aa)//声明友元函数
	{
		cout << aa.x << ' ' << aa.y << endl;
	}
	friend A *operator+(const A<T> &a, const A<T> &b)
	{
		A *p = new A(a.x + b.y,a.y + b.y);
		return p;	     
	}
	
	A(T t1, T t2) :x(t1), y(t2)
	{

	}
	
	
private:
	T x;
	T y;
};

void main2()
{
	A<string> a1("hello", "world");
	print(a1);
	A<int> aa(10, 20);
	A<int> bb(1, 2);
	A<int> *pA = aa + bb;
	print(pA);
	cin.get();
}
void main1()
{
	vector<int> v1;
	vector<vector<int&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值