模块课程(1/2)
函数模板
Templates allow writing generic code in C++. Through templates, we can define functions or classes that operate on generic type parameters, letting the compiler generate the actual code for the specific types requested.
Defining a Function Template
To define a function template, we precede the function definition with the template keyword, followed by the list of type parameters enclosed in angle brackets <>. Commonly, typename or class is used to declare a generic type.
// T is the generic type parameter
template <typename T>
T add(T a, T b) {
return a + b;
}
Function Call and Template Argument Deduction
When we call the function, we can explicitly specify the type in angle brackets:
int res1 = add<int>(5, 10);
double res2 = add<double>(3.14, 2.71);
However, the C++ compiler is usually able to deduce the type automatically from the passed input parameters (Template Argument Deduction):
int res1 = add(5, 10); // The compiler deduces that T is int
Try it yourself
Define a function template named myMax that takes two parameters of generic type T and returns the greater of the two.
显示提示
Start by writing `template <typename T>` followed by the signature `T myMax(T a, T b)`.
3 次尝试后可用的解决方案
Write a function template named printPair that takes two parameters of different generic types T1 and T2 and prints the two arguments separated by a space using std::cout.
显示提示
The template declaration must specify two parameters: `template <typename T1, typename T2>`.
3 次尝试后可用的解决方案