fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. template <class T>
  5. class Vector
  6. {
  7. friend istream & operator >> (istream & is, Vector & v)
  8. {
  9. cout<<"Vvedit vector rozmirom "<<v.n<<":"<<endl;
  10. for(int i = 0; i <v.n; i++)
  11. is>>v.a[i];
  12. return is;
  13. }
  14.  
  15. friend ostream & operator << (ostream & os, const Vector & v)
  16. {
  17. v.show();
  18. return os;
  19. }
  20. private:
  21. T *a; // masiv
  22. int n; // rozmir mas
  23. public:
  24. Vector();
  25. Vector(int _n);
  26. Vector(const Vector & v);//конструктор копіювання
  27. void show()const;
  28. //void setN();
  29. ~Vector();
  30. Vector operator + (const Vector & g);
  31. Vector operator = (const Vector & g);
  32. T operator * (const Vector & g);
  33. };
  34. //
  35. //template <class T>
  36. // void Vector<T>::setN(int _n)
  37. // {
  38. // n = _n;
  39. // };
  40.  
  41. template <class T>
  42. Vector<T> ::Vector()
  43. {
  44. n=3;
  45. a = new T [3];
  46. for(int i = 0; i < n; i++)
  47. a[i] = 0;
  48. }
  49.  
  50. template <class T>
  51. Vector<T>::Vector(int _n)
  52. {
  53. n=_n;
  54. a = new T [_n];
  55. for(int i = 0; i < _n; i++)
  56. a[i] = 0;
  57. }
  58.  
  59. template <class T>
  60. void Vector<T>::show()const
  61. {
  62. for(int i = 0; i < n; i++)
  63. cout<<a[i]<<" ";
  64. cout<<endl;
  65. };
  66.  
  67. template <class T>
  68. Vector<T>::~Vector()
  69. {
  70. //cout<<"distruct"<<endl;
  71. delete []a;
  72. };
  73.  
  74.  
  75. template <class T>
  76. Vector<T> Vector<T>::operator + (const Vector<T> & g)
  77. {
  78. Vector res(n);
  79. if(n != g.n)
  80. {
  81. cout<<"no rozmir"<<endl;
  82. return res;
  83. } else {
  84. for(int i = 0; i < n; i++)
  85. {
  86. res.a[i] = a[i] + g.a[i];
  87. }
  88. cout<<"resultat: "<<res<<endl;
  89. return res;
  90. }
  91. }
  92.  
  93.  
  94. template <class T>
  95. T Vector<T>::operator * (const Vector<T> & g){
  96. T suma = 0;
  97.  
  98. if(n != g.n){
  99. cout<<"no rozmir"<<endl;
  100. return suma;
  101. } else {
  102. for(int i = 0; i<n; i++)
  103. {
  104. suma += a[i] * g.a[i];
  105. }
  106. }
  107. return suma;
  108. }
  109.  
  110. template <class T>
  111. Vector<T> Vector<T>::operator = (const Vector<T> & g)
  112. {
  113. //cout<<"operator = "<<endl;
  114. Vector res(g.n);
  115. for (int i = 0; i < g.n; i++)
  116. {
  117. res.a[i] = g.a[i];
  118. }
  119. return res;
  120. }
  121.  
  122. template <class T>
  123. Vector<T>::Vector(const Vector<T> & v)
  124. {
  125. if(this != &v)//порівнюєм дві адреси
  126. {
  127. //cout<<"construkt copy: "<<endl;
  128. n = v.n;
  129. a = new T[n];
  130. for (int i = 0; i < v.n; i++)
  131. {
  132. a[i] = v.a[i];
  133. }
  134. }
  135. }
  136.  
  137.  
  138. int main()
  139. {
  140. Vector<int>* array = new Vector<int>[3];
  141.  
  142. for (int i = 0; i < 3; i++)
  143. {
  144. cin >> array[i];
  145. }
  146.  
  147. Vector <int> sum;
  148. sum = array[0] + array[1] + array[2] ;
  149. cout << "The sum of all 3 vectors is: " << sum << endl;
  150.  
  151. system("PAUSE");
  152. return 0;
  153. }
Success #stdin #stdout #stderr 0s 3236KB
stdin
1 2 3 4 5 6 7 8 9
stdout
Vvedit vector rozmirom 3:
Vvedit vector rozmirom 3:
Vvedit vector rozmirom 3:
resultat: 5 7 9 

resultat: 12 15 18 

The sum of all 3 vectors is: 0 0 0 

stderr
sh: 1: PAUSE: not found