模板template

模板template,第1张

目录

类模板

函数模板

demo


1. 模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。C++模板的作用,类似于C中的typedef,不过C++中模板有更多的灵活性。C++模板类型,类似于Objective-C中的泛型。C++通过类模板来实现泛型支持。

2.C++中有两种模板,分别是函数模板和类模板。

类模板

正如我们定义函数模板一样,我们也可以定义类模板。泛型类声明的一般形式如下所示:

template  class class-name {
.
.
.
}
函数模板

模板函数定义的一般形式如下所示:

template ret-type func-name(parameter list) { // 函数的主体 }

在这里,type 是函数所使用的数据类型的占位符名称。这个名称可以在函数定义中使用。

demo
#include
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
template  //声明一个模板,虚拟类型名为numtype
class Compare //类模板名为Compare
{
public :
     Compare(numtype a,numtype b){
            x=a;y=b;
     }
     numtype max( ){
        return (x>y)?x:y;
     }
     numtype min( ){
        return (x
void initializer_list_test(initializer_list data){
    size_t bytes = sizeof(string);
    cout <<"date.size = "<< data.end()-data.begin() << endl;

     for (auto beg = data.begin(); beg != data.end(); ++beg)
    {
        std::cout <<"&beg = "<<  beg<<" beg = "<< *beg << " sizeof " << beg->size() << std::endl;
        
    }
    std::cout <<"T.size() = " << data.size() < data = {"aaaaaaaaaaaaaaa","bc","def"};
    initializer_list_test(data);

    Compare cmp1(3,7);  //定义对象cmp1,用于两个整数的比较
    cout<< cmp1.max()<<" is the Maximum of two integer numbers."<< endl;
    return 0;
}
// 结果
date.size = 3
&beg = 0x61fd90 beg = aaaaaaaaaaaaaaa sizeof 15
&beg = 0x61fdb0 beg = bc sizeof 2
&beg = 0x61fdd0 beg = def sizeof 3
T.size() = 3
7 is the Maximum of two integer numbers.

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1330047.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-12
下一篇 2022-06-12

发表评论

登录后才能评论

评论列表(0条)

保存