模板的话因为多了template<class TypeA,class TypeB,......>所以写法还是要走一定格式
例子: B是A的友元类,在B中访问A的私有成员A::a ,在B的成员函数中打印出来
代码格式如下:
//类B的前向声明
template<class Type>
class B;
template<class Type>
class A{
friend class B<Type>;
private:
Type a;
};
template<class Type>
class B{
public:
void SetA_a(const Type& x){
Aclass.a = x;
}
Type GetA_a() const{
return Aclass.a;
}
private:
A<Type> Aclass;
};
int main(){
B<int> b;
b.SetA_a(10);
cout << b.GetA_a();
return 0;
}
输出:
10