您的位置:首页 > 编程语言 > C语言/C++

<C++学习笔记>函数模板 template

2014-10-16 19:52 716 查看
//如果需要多个将同一种算法用于不同类型的函数,使用模板

//模板放在头文件中,在需要使用模板的文件中包含头文件

template < typename AnyType >//定义一个模板 typename可以用class代替

void Swap( AnyType &a, AnyType &b )

{//交换两个AnyType值

AnyType temp;

temp = a;

a = b;

b = temp;

}

int _tmain(int argc, _TCHAR* argv[])

{

int a = 1;

int b = 2;

Swap( a, b );

cout<<a<<"\t"<<b<<endl;

string strK = "aaaa";

string strM = "bbbb";

Swap( strK, strM );

cout<<strK<<"\t"<<strM<<endl;

system("pause");

return 0;

}

//非模板函数 模板函数 显示具体化

//优先级:非模板函数>显示具体化>模板函数

非模板函数:

void Swap( int &, int & );

模板函数:

template < typename AnyType >

void Swap( AnyType &, AnyType & );

显示具体化:

template < typename AnyType >

template <> void Swap < int >( int&, int& )//显示具体化 -->不使用Swap()模板来生成函数定义,而应使用专门为float类型显式地定义的函数定义

{

return ;

}

显式实例化

template void Swap< int >( int&, int& ) //显示实例化 -->使用Swap()模板生成一个使用int类型的实例
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: