fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. class A{
  4. public:
  5. int a;
  6. string s;
  7. };
  8.  
  9. template <typename T> class myClass {
  10. vector<T>arr;
  11. public:
  12. myClass(vector<T> param) : arr(param) {}
  13. T add() {
  14. T sum={};
  15. for(int i=0;i<arr.size();i++){
  16. // cout<<arr[i]<<" ";
  17. sum+=arr[i];
  18. }
  19.  
  20. return sum;
  21. }
  22. };
  23.  
  24. template <> class myClass<A> {
  25. vector<A>arr;
  26. public:
  27. myClass(vector<A> param) : arr(param) {}
  28. A add() {
  29. A sum={};
  30. for(int i=0;i<arr.size();i++){
  31. sum.a+=arr[i].a;
  32. sum.s+=" "+arr[i].s;
  33. }
  34. return sum;
  35. }
  36. };
  37. int main()
  38. {
  39. vector<int>v;
  40. v.push_back(2);
  41. v.push_back(5);
  42. myClass<int> obj(v);
  43.  
  44. int s=obj.add();
  45. cout<<s<<endl;
  46.  
  47. vector<A>vOfA;
  48. vOfA.push_back({3, "abc"});
  49. vOfA.push_back({5, "xyz"});
  50.  
  51. myClass<A> objOfA(vOfA);
  52. A ss=objOfA.add();
  53. cout<<ss.a<<" "<<ss.s<<endl;
  54. }
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
7
8   abc xyz