fork(1) download
  1. template<class T>
  2. class Buffer
  3. {
  4.  
  5. unsigned int siz;
  6. T *data;
  7.  
  8.  
  9. public:
  10.  
  11. ///constructor(size,filename,openmode)
  12. Buffer(unsigned int s,const char* n, const char* m):siz(s)
  13. {
  14. data= new T[siz];
  15. }
  16.  
  17. ///destructor
  18. ~Buffer()
  19. {
  20. delete[] data;
  21. }
  22.  
  23. ///operator[]
  24. T& operator[](unsigned int i)
  25. {
  26. if(i>siz-1)
  27. {
  28. unsigned int newsize=siz*2;
  29. T* tmp=new T[newsize];
  30. for(unsigned int j = 0; j < siz; j++)
  31. {
  32. tmp[j] = data[j];
  33. }
  34. siz=newsize;
  35. delete[] data;
  36. data=tmp;
  37. }
  38. return data[i];
  39. }
  40. };
  41.  
  42. int main() {
  43. Buffer<char*> s(20,"s.txt","rw"); //20 long char*
  44. for(unsigned int i=0;i<24;i++){ //it overwrites the size of s after default 20
  45. s[i]="hey";
  46. }
  47. }
Success #stdin #stdout 0s 3408KB
stdin
Standard input is empty
stdout
Standard output is empty