C++面试高频:模板与可变参数模板大家在准备 C++ 面试时,模板与可变参数模板也是一个比较常见的考点。这一块不算最难,但经常被问,尤其是做泛型代码、日志组件、STL 相关内容时。面试官常问的其实就几个点:什么是模板函数模板和类模板有什么区别什么是可变参数模板为什么模板一般写在头文件里Args...和std::forward是干什么的这篇文章就简单梳理一下这几个高频点。一 什么是模板模板本质上就是泛型编程。你先写一份通用代码,编译器在编译期根据具体类型生成对应版本。比如同样一个求最大值函数,如果不用模板,你可能要写:int版double版string版用了模板之后,一份代码就够了。面试直接说:模板是 C++ 泛型编程的基础,它把类型参数化,让编译器在编译期根据具体类型生成对应代码。二 函数模板函数模板就是把函数里的类型写成参数。#include iostream using namespace std; templatetypename T T myMax(T a, T b) { return a b ? a : b; } int main() { cout myMax(3, 5) endl; cout myMax(3.14, 2.71)