首页 > 其他 > 详细

模版

时间:2014-03-15 11:18:29      阅读:581      评论:0      收藏:0      [点我收藏+]
  • 非类型模版
  • 类型模版
    1. 类模版
    2. 函数模版

 

一。非类型模版 

bubuko.com,布布扣
#include <iostream>
using namespace std;

template<int Size>
class Index
{
    public:
        int operator[](char vchar) 
        { return vchar % Size; }
};

int main()
{
    Index<26> index;
    cout << index[a] << endl;
}
bubuko.com,布布扣

 

二。类模版

模版——模版形参为基本类型

bubuko.com,布布扣
#include <iostream>
using namespace std;

template<class Type>
class trie
{
    public:
        trie(Type val_1, Type val_2) : num_1(val_1), num_2(val_2) {}
        void print_sum() { cout << num_1 + num_2 << endl; }
    private:
        Type num_1, num_2;
};

int main()
{
    trie<int> tt(2, 5);
    tt.print_sum();
}
bubuko.com,布布扣

模版——模版形参为自定义非模版类

bubuko.com,布布扣
#include <iostream>
using namespace std;

template<class Type>
class trie
{
    public:
        Type num;
};
class Index
{
    public:
        int operator[](char vchar) 
        { return vchar % 26; }
};

int main()
{
    trie<Index> tt;
    cout << tt.num[a] << endl;
    cout << tt.num[z] << endl;
}
bubuko.com,布布扣

模版——模版形参为自定义模版类

bubuko.com,布布扣
#include <iostream>
using namespace std;

template<class Type, int Size>
class trie
{
    public:
        Type num;
};

template<int Size>
class Index
{
    public:
        int operator[](char vchar) 
        { return vchar % Size; }
};

int main()
{
    trie<Index<26>, 26> t;
}
bubuko.com,布布扣

 

三。函数模版

bubuko.com,布布扣
#include <iostream>
using namespace std;

template<class Type>
Type sum(Type num_1, Type num_2)
{
    return num_1 + num_2;
}
int main()
{
    cout << sum(2, 3) << endl;
    cout << sum(2.2, 3.0) << endl;
}
bubuko.com,布布扣

结果

5

5.2

模版,布布扣,bubuko.com

模版

原文:http://www.cnblogs.com/kaituorensheng/p/3601495.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!