- #include <iostream>
- using namespace std;
- template <class T>
- T power(T base,int exp)
- {
- if(exp<0)return 0;
- T ret=1;
- for(int i=1;i<=exp;i++)ret*=base;
- return ret;
- }
- int main()
- {
- //三种调用
- int i=power(10,6);
- long l=power(10L,6);
- double d=power((double)10,6);
- cout<<"i= "<<i<<endl;
- cout<<"l= "<<l<<endl;
- cout<<"d= "<<d<<endl;
- system("pause");
- }
函数声明为 template <class T> T power(T base, int exp);
这样的函数声明是以一个特殊的template 前缀开始,后面紧跟着一个参数列(本例只一
个参数)。容易让人迷惑的是其中的"class" 字眼,它其实并不一定表示C++ 的class,
它也可以是一个普通的数据类型。<class T> 只不过是表示:T 是一种类型,而此一类型将在调用此函数时才给予。
在main函数中调用到了 power(int ,int); power(long ,int); power(double,int);这三个函数