c++模板是什么 c++函数模板与类模板【教程】

admin 百科 17
C++模板是编译期泛型编程机制,提供类型无关的函数和类蓝图;函数模板如max支持多类型自动推导,类模板如Stack生成独立特化类型;还支持非类型参数、模板模板参数及auto参数;定义需置于头文件以确保实例化。

c++模板是什么 c++函数模板与类模板【教程】-第1张图片-佛山资讯网

C++模板是一种编译期泛型编程机制,用来编写与类型无关的代码。它不是具体的数据类型或函数,而是一套“生成代码的蓝图”——编译器根据你实际使用的类型,自动实例化出对应的函数或类。

函数模板:写一次,适配多种类型

函数模板让一个函数逻辑能处理 int、double、string 甚至自定义类等不同参数类型,避免重复写多个重载版本。

基本写法:

template <typename T>
T max(T a, T b) {
    return (a > b) ? a : b;
}

登录后复制

说明:

立即学习“C++免费学习笔记(深入)”;

  • template <typename t></typename> 是模板声明,T 是占位类型名(也可用 class T,二者在模板参数中等价)
  • 编译器在调用时推导类型,比如 max(3, 5) → 实例化为 int max(int, int)max(3.14, 2.71) → 实例化为 double max(double, double)
  • 支持显式指定类型:max<:string>("hello", "world")</:string>
  • 若参数类型不一致(如 max(3, 3.14)),编译器通常无法自动推导,需手动指定或重载处理

类模板:构建可复用的泛型容器和工具

类模板把整个类的成员变量和函数都参数化,典型例子是 std::vector<t></t>std::pair<t u></t>

标签: 工具 ai c++

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~