🧩 C++ Templates – One Code, Many Types
Templates in C++ let you write code that works with any data type. It’s like saying: “Write once, reuse for int, float, or string!” 🎯
Instead of writing the same function or class over and over for different data types, you can use templates to make your code flexible and DRY (Don’t Repeat Yourself). 🧠
🛠️ Syntax of Function Template
template<typename T>
T functionName(T arg) {
// code
}
Or you can use class instead of typename, both mean the same here.
🔧 Example: Template Function
#include <iostream>
using namespace std;
template<typename T>
T add(T a, T b) {
return a + b;
}
int main() {
cout << "Int Add: " << add(2, 3) << endl;
cout << "Float Add: " << add(2.5f, 3.5f) << endl;
return 0;
}
🧱 Example: Template Class
#include <iostream>
using namespace std;
template<typename T>
class Box {
T value;
public:
Box(T v) : value(v) {}
void show() {
cout << "Value: " << value << endl;
}
};
int main() {
Box<int> intBox(100);
Box<string> strBox("Hello");
intBox.show();
strBox.show();
return 0;
}
📌 Why Use Templates?
- Reusability: One function or class for all types.
- Type-Safe: No casting, no type confusion.
- Generic Programming: Write more general and flexible code.
⚠️ Things to Know
- Template functions are compiled when they’re used.
- Errors can be tricky because they appear at compile-time.
- Use
<typename T>or<class T> — they work the same for templates.
📦 Summary
- C++ templates allow you to write generic functions and classes.
- Use them when the logic is the same for different data types.
- They improve code reuse, reduce duplication, and make code easier to manage.