• <noscript id="ynq8u"></noscript>

    <s id="ynq8u"></s>
  • <strong id="ynq8u"></strong>

    <code id="ynq8u"><blockquote id="ynq8u"></blockquote></code>

    <small id="ynq8u"></small>
      1. 全國咨詢熱線:400-618-4000

        C++的學習:有關函數的模板

        創建時間:2018年12月13日14時17分

        函數模板是通用的函數描述,通過將類型作為參數傳遞給模板,可使編譯器生成該類型的函數。 
        當函數形式完全相同,只是參數類型不同時,可以使用函數模型,這樣可以極大的減少代碼量,便于維護。

        函數模板聲明形式如下:

        template<typename 數據類型參數標識符>
        <返回類型><函數名>(參數表)

        {
            函數體
        }

        其中template和typename是固定的標識符,不可更好。為了使用簡單,數據類型參數標識符常會使用T。

        例1:

        #include<iostream>
        using namespace std;
        template<typename T>
        void Swap(T &a,T &b)
        {
            T c;
            c=a;
            a=b;
            b=c;
        } 
        int main()
        {
            int a=5;
            int b=3;
            Swap(a,b);
            cout<<"a:"<<a<<" "<<"b:"<<b<<endl;

            double c=1.2;
            double d=3.6;
            Swap(c,d);
            cout<<"c:"<<c<<" "<<"d:"<<d<<endl;

            system("pause");
        }

        結果如下:

        a:3 b:5
        c:3.6 d:1.2
        請按任意鍵繼續. . .

        例2:

        #include<iostream>
        using namespace std;
        template<typename T1,typename T2>
        T2 Add(T1 a,T2 b)
        {
            T2 c;
            c = a+b;
            return c;
        } 
        int main()
        {
            int a=5;
            double b=1.2;
            cout<<Add(a,b)<<endl;

            double c=1.2;
            int d = 5;
            cout<<Add(c,d)<<endl;

            system("pause");
        }

        結果如下:

        6.2
        6
        請按任意鍵繼續. . .

        可以看到,通過函數模板,函數會自動根據輸入參數的類型進行轉換,這樣可以極大減少代碼量。

        作者:傳智播客C/C++培訓學院
        首發:
        http://c.itcast.cn/
        香蕉电影