🧩 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.