new file mode 100644
--- /dev/null
+++ b/c++/over.cpp
@@ -0,0 +1,36 @@
+#include <iostream>
+#include <cstdlib>
+
+template<class T>
+T add(T a, T b)
+{
+ return a+b;
+}
+
+int add (int a, int b)
+{
+ std::cout << "overloaded..." << std::endl;
+ return b+a;
+}
+
+int main(int argc, char **argv)
+{
+ float a, b;
+ int c, d;
+ std::string s1, s2;
+
+ a = 1.0;
+ b = 2.5;
+
+ c = 1;
+ d = 2;
+
+ s1 = "Hello ";
+ s2 = "World!";
+
+ std::cout << add (a, b) << std::endl;
+ std::cout << add (c, d) << std::endl;
+ std::cout << add (s1, s2) << std::endl;
+
+ return EXIT_SUCCESS;
+}