首页 > 代码库 > c++函数模板1

c++函数模板1

1 定义:

  函数模板 只适用于参数个数相同但是类型不同 而且函数体相同的情况

2 这个例子没有使用模板的情况

#include <iostream>

using namespace std;

void Swap(int &a, int &b)
{
    int t = a;
    a = b;
    b = t;
}
void Swap(double &a, double &b)
{
    double t = a;
    a = b;
    b = t;
}
int main1()
{
    //long a = 2;
    //long b = 3;
    //Swap(a, b);这样不行

    int a = 2;
    int b = 3;
    Swap(a, b);//但是变成double以后不行 为了通用引入模板
    cout << a << b << endl;
    cin.get();
    return 1;
}

 

3 使用模板以后

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 
 5 /*
 6 函数模板 只适用于参数个数相同但是类型不同 而且函数
 7 体相同的情况 否则不可以
 8 */
 9 template <typename T>//这里typename可以变化为class
10 void Swap(T &a, T &b)
11 {
12     T t = a;
13     a = b;
14     b = t;
15 }
16 
17 int main2()
18 {
19     int a = 10;
20     int b = 20;
21     Swap(a, b);
22     cout << a << b << endl;
23 
24     long c = 10;
25     long d = 20;
26     Swap(c, d);
27     cout << c << d << endl;
28 
29     string sa = "hello";
30     string sb = "zzong";
31     Swap(sa, sb);
32     cout << sa << sb << endl;
33     
34     cin.get();
35     return 1;
36 }

----------------------->

 

c++函数模板1