C++ 函數模板和模板類

#include <QCoreApplication>

#include <iostream>

using namespace std;

//函數模板
template<typename T>
bool equivalent(const T&a, const T&b)
{
    return !(a<b)&& !(b<a);
}

//類模板
template<typename T=int>//默認參數
class Bignumber{
  typedef T value_type;

  public:
    Bignumber(value_type a):
        m_v(a)
        {

        }

    inline bool operator <(const Bignumber &obj)const
    {
        return m_v< obj.m_v;
    }

  private:
    value_type m_v;
};


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    Bignumber<> x(1), b(1);

    bool ret = equivalent(x,b);//函數模板自動推導

    cout<<ret<<endl;

    cout<<equivalent<double>(5,1);//函數模板特化
    while (1) {

    }

    return a.exec();
}
發佈了70 篇原創文章 · 獲贊 11 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章