Advertisement
Guest User

Untitled

a guest
Nov 19th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #ifndef DBUFFER_H
  2. #define DBUFFER_H
  3.  
  4. #include <ostream> // std::ostream
  5.  
  6. template <typename T> //segnalazione della creazione template: ora dbuff è "templato" e potenzialmente generico
  7. class dbufferT {
  8.  
  9. public:
  10. typedef unsigned int size_type;
  11.  
  12. private:
  13. size_type _size;
  14. T * _buffer; //devo rimuovere i tipi concreti e mettere quelli templati: da int * _buffer a T *_buffer
  15.  
  16. void init(size_type sz);
  17.  
  18. public:
  19. dbuffer();
  20.  
  21. explicit dbuffer(size_type sz);
  22.  
  23. //dbuffer(size_type sz, int value); prima. Posso scrivere solo T value? no perchè T può essere qualsiasi cosa (anche un oggetto): non voglio più passare per copia ma per reference
  24. dbuffer(size_type sz, const T &value);
  25.  
  26. dbuffer(const dbuffer &other);
  27.  
  28. dbuffer& operator=(const dbuffer &other);
  29.  
  30. ~dbuffer();
  31.  
  32. size_type size(void) const;
  33.  
  34. int &operator[](size_type index);
  35.  
  36. const int &operator[](size_type index) const;
  37.  
  38. void swap(dbuffer &other);
  39.  
  40. };
  41.  
  42. std::ostream &operator<<(std::ostream &os, const dbuffer &db);
  43.  
  44. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement