### Khái niệm về Template trong C++
**Template** trong C++ là một tính năng cho phép định nghĩa hàm hoặc lớp mà không cần chỉ định kiểu dữ liệu cụ thể. Thay vào đó, bạn có thể sử dụng các tham số kiểu (type parameters) để tạo ra các hàm hoặc lớp có thể hoạt động với nhiều kiểu dữ liệu khác nhau. Điều này giúp tăng tính tái sử dụng mã và giảm thiểu sự trùng lặp.
### Cách sử dụng Template
#### 1. Template cho hàm
Dưới đây là ví dụ về cách sử dụng template cho hàm:
```cpp
#include <iostream>
using namespace std;
// Định nghĩa template cho hàm
template <typename T>
T max(T a, T b) {
return (a > b) ? a : b;
}
int main() {
cout << max(10, 20) << endl; // Sử dụng với kiểu int
cout << max(10.5, 20.5) << endl; // Sử dụng với kiểu double
cout << max('A', 'B') << endl; // Sử dụng với kiểu char
return 0;
}
```
#### 2. Template cho lớp
Dưới đây là ví dụ về cách sử dụng template cho lớp:
```cpp
#include <iostream>
using namespace std;
// Định nghĩa template cho lớp
template <typename T>
class Box {
private:
T value;
public:
Box(T v) : value(v) {}
T getValue() {
return value;
}
};
int main() {
Box<int> intBox(123); // Sử dụng với kiểu int
Box<double> doubleBox(45.67); // Sử dụng với kiểu double
cout << intBox.getValue() << endl; // In ra: 123
cout << doubleBox.getValue() << endl; // In ra: 45.67
return 0;
}
```