fork download
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4.  
  5. typedef int bufor_type;
  6.  
  7. using namespace std;
  8.  
  9. template <typename type>
  10. class Bufor;
  11.  
  12. template<typename type>
  13. ostream& operator << (ostream& st, const Bufor<type>& A)
  14. {
  15. A.Show(st);
  16. return st;
  17. }
  18.  
  19. template <typename type>
  20. class Bufor
  21. {
  22. private:
  23. type *Arr = new type;
  24. int Start;
  25. int End;
  26. int Arr_Size;
  27. bool circle;
  28. public:
  29. Bufor() :Arr_Size(0), Arr(NULL), End(0), Start(0){}
  30. Bufor(int b_size, type *b_arr, int b_start, int b_end)
  31. {
  32. set(b_size, b_start, b_end);
  33. Arr = b_arr;
  34. }
  35.  
  36. void set(int b_size, int b_start, int b_end)
  37. {
  38. Arr = new type[b_size];
  39. Arr_Size = b_size;
  40. Start = b_start;
  41. End = b_end;
  42. circle = false;
  43. }
  44.  
  45. void Show(ostream& stream)const
  46. {
  47. for (int i = Start; i < End - 1; i = (++i) % Arr_Size) stream << Arr[i] << " ";
  48. }
  49.  
  50. friend ostream& operator << <type>(ostream& st, const Bufor& A);
  51. };
  52.  
  53. int main()
  54. {
  55. Bufor<bufor_type> A;
  56. int *temp = new int;
  57. Bufor<bufor_type> B(3, temp, 0, 0);
  58. A = B;
  59. cout << B;
  60. return 0;
  61. }
Success #stdin #stdout 0s 3452KB
stdin
Standard input is empty
stdout
Standard output is empty