1. 程式人生 > >C++的函式過載篇(一)

C++的函式過載篇(一)

1、在c語言中是沒有函式過載的。

2、c++的函式過載可以使用函式模板來簡化重複的程式碼量,但是關於函式的過載有如下幾個限制:

    a)它只適用於函式的引數個數相同而型別不同;

b)它只適用於函式體相同的情況;

下面是我測試的程式碼:OverloadModel.cpp

/*
    1、函式模板的應用;
*/
#include <iostream>
using namespace std;
template <class T>

T max(T a,T b,T c)
{
    if(b>a)a=b;
    if(c>a)a=c;
    return a;
}
/*
    注意事項:
        1、注意開頭的template中的 typename不要寫成tempname;
        2、typename可以替換為class,結果不變
*/
int main()
{
    int i1=1,i2=2,i3=3,i;
    i=max(i1,i2,i3);
    double j1=1.1,j2=1.2,j3=1.3,j;
    j=max(j1,j2,j3);
    float k1=2.1,k2=2.2,k3=2.3,k;
    k=max(k1,k2,k3);
    cout<<"i="<<i<<endl;
    cout<<"j="<<j<<endl;
    cout<<"k="<<k<<endl;
    return 0;
}