普通友元:FooBar的成员和fcn函数可以访问Bar类的任意实例的private成员和protected成员
模板友元类FooBar
模板友元函数fcn
一般模板友元关系:FooBar的任意实例都可以访问Bar的任意实例的私有成员。fcn函数相同
模板友元类FooBar
模板友元函数fcn
函数定义在模板内部会导致重复定义
3.特定的模板友元关系:Bar实例只与有相同模板实参的FooBar版本是友元
3.1
模板友元类FooBar
模板友元函数fcn
另一种写法,在模板类内部定义,调用fcn需要显示指定模板实参
3.2特定实例
模板友元类FooBar
模板友元函数fcn
可以将fcn定义为非模板
非类型形参的模板友元
模板友元类FooBar
模板友元函数fcn
外部定义
函数定义在类内部,每次实例化都会生成相应的版本,所以有时会导致重复定义的错误,但有些友元只能定义在模板的内部
联系客服