c++ 函數模板,變量的引用


函數模板:“函數體相同,數據類型不同,模板!”

變量的引用:“你我同為一體,一榮俱榮,一損俱損”

#include <iostream>

using namespace std;

template <typename numtype>
void swap(numtype &a,numtype &b)
{
    numtype &temp=a;
    a=b;
    b=temp;
}

int main()
{
    int g=6,h=7;
    swap(g,h);
    cout<<g<<' '<<h<<endl;
    float c=6.1,d=7.1;
    swap(c,d);
    cout<<c<<' '<<d<<endl;
    return 0;

}


當我把變量的引用和函數模板結合起來用的時候,編譯器是這么提示我語法錯誤的:

error: call of overloaded 'swap(int&, int&)' is ambiguous

error: call of overloaded 'swap(float&, float&)' is ambiguous


當我把指針和函數模板結合起來用的時候,順利通過了編譯,程序運行結果正確:


#include <iostream>
using namespace std;

template <typename numtype>
void swap(numtype *a,numtype *b)
{
    numtype *temp=a;
    a=b;
    b=temp;
}

int main()
{
    int g=6,h=7;
    swap(g,h);
    cout<<g<<' '<<h<<endl;
    float c=6.1,d=7.1;
    swap(c,d);
    cout<<c<<' '<<d<<endl;
    return 0;
}


記下了,當作踏入c++沼澤的第二腳。



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: