Advertisement
Ivan_Moscow

6.1.14.(2)

May 23rd, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.44 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3.  
  4. class Buffer {
  5. private:
  6.     float *data;
  7.     int length;
  8.     int current;
  9. public:
  10.     //Конструктор
  11.     Buffer (int newlen) {
  12.         data = new float[newlen];
  13.         length = newlen;
  14.         current = 0;
  15.     }
  16.     //Деструктор
  17.     ~Buffer () {
  18.         delete[] data;
  19.     }
  20.  
  21.     void add (float input) {
  22.         //Если в буфере еще есть место, добавляем
  23.         if (current<=length-1) {
  24.             data[current] = input;
  25.             current++;
  26.         } else {
  27.             std::cout<<"Error.\n";
  28.         }
  29.         return;
  30.     }
  31.  
  32.     float get() {
  33.         //Проверяем, не пуст ли буфер
  34.         if (current>0) {
  35.             float first = data[0];
  36.             for (int i=0; i<current; i++) {
  37.                 data[i]=data[i+1];
  38.             }
  39.             current--;
  40.             return first;
  41.         }
  42.     }
  43.  
  44.     void print() {
  45.         for (int i=0; i<current; i++) {
  46.             std::cout<<data[i]<<"\n";
  47.         }
  48.         return;
  49.     }
  50. };
  51.  
  52. int _tmain(int argc, _TCHAR* argv[]) {
  53.     const int buf_len = 50;
  54.     Buffer buf1(buf_len);
  55.     //С помощью цикла заполним буфер
  56.     for (int i=0; i<buf_len; i++) {
  57.         buf1.add(i);
  58.     }
  59.     //Выведем весь буфер
  60.     buf1.print();
  61.     //Испытаем функцию get()
  62.     std::cout<<"Get: "<<buf1.get();
  63.     std::cout<<"\n";
  64.     system("pause");
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement