c++++ 模板包含类模板和函数模板。类模板允许创建可用于不同数据类型的类,而函数模板可用于不同数据类型的函数。两者主要区别在于:类模板显式实例化,函数模板隐式实例化;类模板中类型参数在整个类定义中可见,而函数模板中仅在签名中可见。,C++ 中的类模板与函数模板,C++ 模板是一项强大的语言特性,它允许我们创建可重用代码,该代码可用于各种数据类型。C++ 提供了两种类型的模板:类模板和函数模板。,类模板,类模板允许我们创建可用于不同数据类型的类。换句话说,它允许我们创建一种蓝图,该蓝图可以用于创建具有不同数据类型(例如整数、浮点数或其他自定义类)的对象。,函数模板,函数模板允许我们创建可用于不同数据类型的函数。同样,它允许我们创建一种模板,该模板可以用于创建具有不同参数类型和返回值类型的函数。,区别,类模板和函数模板之间的主要区别在于:,实例化方式:类模板通过使用 <>
符号(例如 Array<int>
)显式实例化,而函数模板是通过调用该函数并传递类型参数(例如 max<int>(3, 5)
)隐式实例化的。可见性:类模板中的类型参数在整个类定义中都可见,而函数模板中的类型参数仅在函数签名中可见。,实战案例,类模板:创建一个 Pair
类模板,它存储两个不同类型的值。,我们使用 Pair
类模板创建了一个存储整数键和字符串值的 Pair
对象:,函数模板:创建一个 swap
函数模板,用于交换两个不同类型值的顺序。,我们使用 swap
函数模板交换了两个整数:,