MST

星途 面试题库

面试题:C++函数模板类型参数推导之基础应用

请编写一个C++函数模板 `add`,它接受两个参数并返回它们的和。在主函数中,分别使用不同类型(如 `int`、`double`)的变量调用该函数模板,阐述编译器如何推导函数模板的类型参数。
19.3万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

// 函数模板定义
template <typename T>
T add(T a, T b) {
    return a + b;
}

int main() {
    int intResult = add(3, 5); // 编译器推导T为int
    double doubleResult = add(3.5, 5.5); // 编译器推导T为double

    std::cout << "int类型相加结果: " << intResult << std::endl;
    std::cout << "double类型相加结果: " << doubleResult << std::endl;

    return 0;
}

在上述代码中,当调用 add(3, 5) 时,编译器根据传入的参数 35 的类型,自动推导出函数模板参数 Tint 类型。同样,当调用 add(3.5, 5.5) 时,编译器根据传入参数 3.55.5 的类型,自动推导出函数模板参数 Tdouble 类型。编译器通过传入的实际参数的类型来确定函数模板中类型参数 T 的具体类型,从而实例化出相应类型的函数。