Template trong C++ cho phép định nghĩa hàm hoặc lớp tổng quát, có thể làm việc với nhiều kiểu dữ liệu khác nhau mà không cần phải viết lại mã cho từng kiểu.
### Cách thức hoạt động:
1. Khi bạn định nghĩa một template, bạn sử dụng từ khóa "template" theo sau là một hoặc nhiều tham số kiểu.
2. Khi gọi hàm hoặc tạo đối tượng từ lớp template, trình biên dịch sẽ tạo ra các phiên bản cụ thể dựa trên kiểu dữ liệu được chỉ định.
### Ví dụ về hàm template:
```cpp
template <typename T>
T add(T a, T b) {
return a + b;
}
// Sử dụng hàm template
int main() {
int resultInt = add(5, 3); // Kết quả: 8
double resultDouble = add(5.5, 2.5); // Kết quả: 8.0
}
```
### Ví dụ về lớp template:
```cpp
template <typename T>
class Box {
public:
T value;
Box(T v) : value(v) {}
};
// Sử dụng lớp template
int main() {
Box<int> intBox(123);
Box<std::string> strBox("Hello");
}
```