bai_jimmy

导航

C++ 模版

 

函数模版

#include <iostream>

using namespace std;

template<typename T>
T add(T t1, T t2)
{
        return t1 + t2;
}

//template int add<int>(int t1, int t2);

int main()
{
        cout << add<int>(1.2, 3) << endl;
}

 

 

类模版

#include <iostream>
using namespace std;

template <typename T>

/**
 * 定义一个类模版, 并且实例化
 */
class Compare
{
        private:
                T t1, t2;
        public:
                Compare(T a, T b):t1(a),t2(b){}
                T max()
                {
                        return t1 > t2 ? t1 : t2;
                }
                T min()
                {
                        return t1 > t2 ? t2 : t1;
                }
};

int main()
{
        Compare<int> c1(1, 2);
        cout << "int max:" << c1.max() << endl;

        Compare<double> c2(1.2, 3.6);
        cout << "double min:" << c2.min() << endl;

        Compare<char> c3('a', 'b');
        cout << "char max:" << c3.max() << endl;

        return 0;
}

 

posted on 2016-10-05 15:07  bai_jimmy  阅读(100)  评论(0编辑  收藏  举报