C++ 模板2025 年 8 月 29 日 | 阅读 9 分钟 C++ 模板是 C++ 中新增的一个强大功能。它允许我们定义泛型类和泛型函数,从而为泛型编程提供支持。泛型编程是一种技术,其中泛型类型用作算法的参数,以便它们可以适用于多种数据类型。 模板的类型C++ 中主要有两种类型的模板。 ![]() 现在,我们将逐一讨论这些模板。 1) 函数模板在 C++ 中,函数模板使我们能够编写可与任何数据类型一起使用的泛型函数。泛型函数定义了一组可以应用于各种数据类型的操作。 函数中使用的数据类型在编译时确定。函数调用取决于数据类型。例如,快速排序算法可以使用函数模板实现。它使相同的排序函数能够处理整数、双精度浮点数、浮点数以及其他几种数据类型的多个数组。 可以使用关键字 `template` 创建泛型函数。此关键字定义了一个模板参数,它充当数据类型的占位符。 函数模板语法它具有以下语法: 在这个语法中,
C++ 函数模板示例让我们举一个例子来说明 C++ 中的函数模板。 示例编译并运行输出 Addition of i and j is : 5 Addition of m and n is : 3.5 说明 在上面的例子中,我们创建了一个函数模板,它可以对任何类型执行加法操作,无论是整数、浮点数还是双精度浮点数。 带多个参数的函数模板在 C++ 中,我们可以通过使用逗号分隔列表来在模板函数中使用多个泛型类型。 语法 它具有以下语法: 在此语法中,我们看到模板函数可以接受任意数量的不同类型的参数。 C++ 带多个参数的函数模板示例 让我们举一个例子来说明 C++ 中带多个参数的函数模板。 示例编译并运行输出 Value of a is : 10 Value of b is : 20 Value of c is : 30.5 说明 在上面的例子中,fun() 函数的模板被重载,其中定义了两个版本的 fun() 函数。第一个接受一个泛型参数,另一个接受两个可能不同类型的泛型参数。当调用 fun(10) 时,调用单参数版本;当调用 fun(20, 30.5) 时,使用双参数版本。 函数模板的限制在 C++ 中,函数模板不能对函数的所有版本执行相同的操作,尤其是在功能不同时。 C++ 函数模板限制示例 让我们举一个例子来说明 C++ 中函数模板的限制。 示例编译并运行输出 value of a is : 4.6 Number is even 说明 在此示例中,我们重载了普通函数。我们无法重载泛型函数,因为这两个函数具有不同的功能。第一个显示值,第二个确定数字是否为偶数。 2) 类模板在 C++ 中,类模板也可以类似于函数模板的方式定义。当一个类使用模板的概念时,该类被称为泛型类。 我们可以为类定义一个模板。例如,可以为数组类创建一个类模板,该模板可以接受各种类型的数组,例如 int 数组、float 数组和 double 数组。 语法在这个语法中,
现在,我们创建一个类实例 其中,
C++ 类模板示例让我们举一个例子来说明 C++ 中的类模板。 示例编译并运行输出 Addition of num1 and num2 : 11 说明 在此示例中,我们为类 A 创建了一个模板。在 main() 方法内部,我们创建了名为 'd' 的类 A 的实例。 带多个参数的类模板在 C++ 中,我们可以在类模板中使用多个泛型数据类型,每个泛型数据类型都用逗号分隔。 语法 它具有以下语法: C++ 带多个参数的类模板示例 让我们举一个简单的例子,当一个类模板包含两个泛型数据类型时。 示例编译并运行输出 Values of a and b are : 5,6.5 说明 在此示例中,我们使用了一个带有两个类型参数(T1 和 T2)的类模板,这允许我们创建具有不同数据类型的类对象。之后,类 A 存储并显示类型 T1 和 T2 的两个值。在 main() 函数中,创建了一个类型为 A 非类型模板参数在 C++ 中,模板可以包含多个参数,我们还可以使用非类型参数。除了类型 T 参数之外,我们还可以使用其他类型的参数,例如字符串、函数名、常量表达式和内置类型。 语法 它具有以下语法: 在上述情况下,非类型模板参数是 `size`,因此模板将数组的大小作为参数提供。 参数在创建类的对象时指定 C++ 非类型模板参数示例 让我们举一个例子来说明 C++ 中的非类型模板参数。 示例编译并运行输出 1 2 3 4 5 6 7 8 9 10 说明 在此示例中,创建了一个包含非类型模板参数(即 `size`)的类模板。它在创建类 'A' 的对象时指定。 函数重载与函数模板的区别C++ 中函数重载和函数模板之间的一些区别如下
C++ 模板选择题1) 以下哪个选项用于泛型编程?
答案: b) 模板 2) 以下哪个选项显示了函数模板的正确语法?
答案: d) A 和 B 都对 3) 关于 C++ 中的类模板,以下哪个选项是正确的?
答案: b) 它们在使用前必须用特定类型实例化 4) 以下代码的输出是什么?
答案: c) 2 8 5) 我们可以在模板中使用多类型参数吗?
答案: a) 是 下一主题C++ 字符串 |
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India