G++声明模板友元函数

出自Linux Wiki

在2007年6月12日 (二) 15:20由Chenxing (讨论 | 贡献)所做的修订版本
(差异) ←上一修订 | 最新修订 (差异) | 下一修订→ (差异)

本文主要讨论利用类型参数,把模板函数声明为对应模板类的友员函数的问题。

下面是一个例子,注意:

  1. 在使用friend前加入了对func的声明
  2. 在声明friend时,func后有<>
  3. 此段代码不能在VC6中编译通过。

<cpp>

  1. include<iostream>

using namespace std;

template < class T > void func (T arg);

template < class T > class CTemp{

   friend void func<> (T arg);
   private:
       T element;
   public:
       CTemp (T arg):element(arg){ }

};

template < class T > void func (T arg){

   CTemp < T > a (arg);
   int i;
   cout << a.element << endl;
   return;

}

int main(){

   func (5);
   return 0;

} </cpp>

个人工具
简体繁体转换