fork download
  1. #include<iostream>
  2. using namespace std;
  3.  
  4.  
  5. // Befor use Template :
  6.  
  7. int sum_int(int n1, int n2) {
  8. return n1 + n2;
  9. }
  10.  
  11. float sum_float(float f1, float f2) {
  12. return f1 + f2;
  13. }
  14.  
  15. // use Template :
  16.  
  17. template <typename T> // T == any name you want
  18. T sum_T(T t1, T t2) {
  19. return t1 + t2;
  20. }
  21.  
  22.  
  23. // Template Calss :
  24. template <typename t>
  25. class Calculator {
  26. public:
  27. t add(t n1, t n2) {
  28. return n1 + n2;
  29. }
  30.  
  31. t subtract(t n1, t n2) {
  32. return n1 - n2;
  33. }
  34.  
  35. t multiply(t n1, t n2) {
  36. return n1 * n2;
  37. }
  38.  
  39. // float return type cuz int/int = int;
  40. float divide(t n1, t n2) {
  41. if (n2 == 0)
  42. return 0;
  43. return float(n1) / n2;
  44. }
  45. };
  46.  
  47.  
  48. int main() {
  49.  
  50. // Test Befor use Template :
  51. cout << "sum_int(5, 7) : " << sum_int(5, 7) << "\n";
  52. cout << "sum_int(5.6, 7.8) : " << sum_int(5.6, 7.8) << "\n";
  53.  
  54. cout << "sum_float(5, 7) : " << sum_float(5, 7) << "\n";
  55. cout << "sum_float(5.6, 7.8) : " << sum_float(5.6, 7.8) << "\n";
  56.  
  57. cout << "*********** Template ***********" << "\n";
  58.  
  59.  
  60. cout << "sum_T(5, 7) : " << sum_T(5, 7) << "\n";
  61. cout << "sum_T(5.6, 7.8) : " << sum_T(5.6, 7.8) << "\n";
  62.  
  63.  
  64. cout << "*********** Class Template ***********" << "\n\n";
  65. cout << "*********** int ***********" << "\n\n";
  66. // className <dataType> objectName;
  67.  
  68. Calculator <int> intCalculator;
  69. cout << "intCalculator.add(6, 8) : " << intCalculator.add(6, 8) << "\n";
  70. cout << "intCalculator.add(6.3, 8.4) : " << intCalculator.add(6.3, 8.4) << "\n";
  71. cout << "intCalculator.subtract(6, 8) : " << intCalculator.subtract(6, 8) << "\n";
  72. cout << "intCalculator.subtract(6.3, 8.4) : " << intCalculator.subtract(6.3, 8.4) << "\n\n";
  73. cout << "intCalculator.multiply(6, 8) : " << intCalculator.multiply(6, 8) << "\n";
  74. cout << "intCalculator.multiply(6.3, 8.4) : " << intCalculator.multiply(6.3, 8.4) << "\n";
  75. cout << "intCalculator.divide(6, 8) : " << intCalculator.divide(6, 8) << "\n";
  76. cout << "intCalculator.divide(6.3, 8.4) : " << intCalculator.divide(6.3, 8.4) << "\n";
  77.  
  78. cout << "*********** float ***********" << "\n\n";
  79.  
  80. Calculator <float> floatCalculator;
  81. cout << "floatCalculator.add(6, 8) : " << floatCalculator.add(6, 8) << "\n";
  82. cout << "floatCalculator.add(6.3, 8.4) : " << floatCalculator.add(6.3, 8.4) << "\n";
  83. cout << "floatCalculator.subtract(6, 8) : " << floatCalculator.subtract(6, 8) << "\n";
  84. cout << "floatCalculator.subtract(6.3, 8.4) : " << floatCalculator.subtract(6.3, 8.4) << "\n\n";
  85. cout << "floatCalculator.multiply(6, 8) : " << floatCalculator.multiply(6, 8) << "\n";
  86. cout << "floatCalculator.multiply(6.3, 8.4) : " << floatCalculator.multiply(6.3, 8.4) << "\n";
  87. cout << "floatCalculator.divide(6, 8) : " << floatCalculator.divide(6, 8) << "\n";
  88. cout << "floatCalculator.divide(6.3, 8.4) : " << floatCalculator.divide(6.3, 8.4) << "\n\n";
  89.  
  90. return 0;
  91. }
Success #stdin #stdout 0.01s 5280KB
stdin
Standard input is empty
stdout
sum_int(5, 7) : 12
sum_int(5.6, 7.8) : 12
sum_float(5, 7) : 12
sum_float(5.6, 7.8) : 13.4
*********** Template ***********
sum_T(5, 7) : 12
sum_T(5.6, 7.8) : 13.4
*********** Class Template ***********

*********** int ***********

intCalculator.add(6, 8) : 14
intCalculator.add(6.3, 8.4) : 14
intCalculator.subtract(6, 8) : -2
intCalculator.subtract(6.3, 8.4) : -2

intCalculator.multiply(6, 8) : 48
intCalculator.multiply(6.3, 8.4) : 48
intCalculator.divide(6, 8) : 0.75
intCalculator.divide(6.3, 8.4) : 0.75
*********** float ***********

floatCalculator.add(6, 8) : 14
floatCalculator.add(6.3, 8.4) : 14.7
floatCalculator.subtract(6, 8) : -2
floatCalculator.subtract(6.3, 8.4) : -2.1

floatCalculator.multiply(6, 8) : 48
floatCalculator.multiply(6.3, 8.4) : 52.92
floatCalculator.divide(6, 8) : 0.75
floatCalculator.divide(6.3, 8.4) : 0.75