就业数据资源平台
当前位置:首页 > C语言程序设计
c++中友元的一些总结(2)

  2,模板函数作友元
  先给一个模板函数,它是一个模板,并不是一个函数:
  1
  2
  template<typename T>
  void foo1(T);
  在定义foo1为某类的友元时,或者要实例化模板参数T,或者给出可演绎的申明式,而且就算是可以演绎的,一对尖括号也不能省。如:
  class A
  {
  public:
  friend void foo1<char>(char);
  friend void foo1<>(double);
  };
  或者给出限制符:::
  class A
  {
  public:
  friend void ::foo1(char);
  };
  当然,如果有一般函数具有这种形式,那会优先于模板函数匹配。最后这里的申明式都不能是定义式,必须前至申明(定义)。
就业数据资源平台