目录
类模板
函数模板
demo
1. 模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。C++模板的作用,类似于C中的typedef,不过C++中模板有更多的灵活性。C++模板类型,类似于Objective-C中的泛型。C++通过类模板来实现泛型支持。
2.C++中有两种模板,分别是函数模板和类模板。
类模板正如我们定义函数模板一样,我们也可以定义类模板。泛型类声明的一般形式如下所示:
template函数模板class class-name { . . . }
模板函数定义的一般形式如下所示:
template
在这里,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.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)