C++ 泛型编程

模板(Template)

简单的说,模板是一种通用的描述机制,当使用模板时允许使用通用类型来定义函数或类等。模板引入了一种全新的编程思维方式,称为"泛型编程"或"通用编程"。

类型参数化

先看下面的示例代码:

#include
#include

using namespace std;

int add(const int a, const int b)
{
    cout<<"func 1"<

运行结果如下:

func 1
3
func 2
3.02
func 3
Hello c++

上面代码分别重载了三个add函数,编译器根据传递的参数决定调用的函数。

下面是使用了函数模板的示例:

#include
#include

using namespace std;

template
T add(const T& a, const T& b)
{
    return a + b;
}

int main()
{
    cout<

运行结果如下:

3
3.02
Hello c++

模板的定义

template

或者

template

函数模板

template<模板参数表>
返回类型 函数名(参数表)
{
//函数体
}

显示实例化

template 返回类型 函数名<类型实参表>(函数参数表);

特化

template<>返回类型 函数名[<类型实参表>](函数参数表)
{
//函数体
}

你可能感兴趣的:(C++ 泛型编程)