当前位置:文档之家› C 模板定义

C 模板定义

C+=模板定义
1、模板的概念:
在C++中,模板是泛型编程的基础。

模板是创建类或函数的蓝图或公式。

2、定义函数模板:
模板定义以template关键字开始,后接模板形参表(用<>括起来),多个模板形参用逗号隔开。

模板形参的名字没有实际意义。

1)模板形参表:模型形参可以是表示类型的类型形参,也可以是表示常量表达式的非类型形参。

模板形参表不能为空。

2)使用模板函数:使用时,编译器会确定绑定到模板形参的模板实参类型。

编译器确定用实际类型代替每个类型形参,用值代替每个非类型形参。

3)inline函数模板:如,template <type T> T max(const T&, const T&);
模板函数定义和使用示例:
#include <iostream>
using std::cout;
using std::endl;
//定义模板函数
template <typename T>
int compare(const T &v1, const T &v2)
{
if(v1<v2) return -1;
if(v2<v1) return 1;
return 0;
}
//使用模板函数
int main(){
cout<<compare(1,2)<<endl;
cout<<compare("a","A")<<endl;
system("pause");
return 0;
}
3、定义类模板
在类声明前加上template <class T>,其余部分与类的声明基本一致。

类模板可以定义数据成员、函数成员和类型成员,构造函数和析构函数等。

也可以使用标号控制对成员的访问。

在类和类的成员中,可以使用模板形参作为类型或值的占位符,在使用类时再提供那些类型或值。

类模板示例:
template <class T>
class Queue {
public:
Queue();
T &front();
const T &front()const;
void push(const T &);
void pop();
bool empty()const;
};
使用类模板:
使用类模板时,必须为模板形参显示指定实参。

如:
Queue<int> qi;
Queue<string> qs;
Queue< vector<double> > qc;
模板形参:。

相关主题