- template<class T> 
- class Buffer 
- { 
-   
-     unsigned int siz; 
-     T *data; 
-   
-   
- public: 
-   
-     ///constructor(size,filename,openmode) 
-     Buffer(unsigned int s,const char* n, const char* m):siz(s) 
-     { 
-         data= new T[siz]; 
-     } 
-   
-     ///destructor 
-     ~Buffer() 
-     { 
-         delete[] data; 
-     } 
-   
-     ///operator[] 
-     T& operator[](unsigned int i) 
-     { 
-         if(i>siz-1) 
-         { 
-             unsigned int newsize=siz*2; 
-             T* tmp=new T[newsize]; 
-             for(unsigned int j = 0; j < siz; j++) 
-             { 
-                 tmp[j] = data[j]; 
-             } 
-             siz=newsize; 
-             delete[] data; 
-             data=tmp; 
-         } 
-         return data[i]; 
-     } 
- };      
-   
- int main() { 
-     Buffer<char*> s(20,"s.txt","rw");    //20 long char* 
-     for(unsigned int i=0;i<24;i++){   //it overwrites the size of s after default 20 
-         s[i]="hey"; 
-     } 
- } 
				dGVtcGxhdGU8Y2xhc3MgVD4KY2xhc3MgQnVmZmVyCnsKCiAgICB1bnNpZ25lZCBpbnQgc2l6OwogICAgVCAqZGF0YTsKCgpwdWJsaWM6CgogICAgLy8vY29uc3RydWN0b3Ioc2l6ZSxmaWxlbmFtZSxvcGVubW9kZSkKICAgIEJ1ZmZlcih1bnNpZ25lZCBpbnQgcyxjb25zdCBjaGFyKiBuLCBjb25zdCBjaGFyKiBtKTpzaXoocykKICAgIHsKICAgICAgICBkYXRhPSBuZXcgVFtzaXpdOwogICAgfQoKICAgIC8vL2Rlc3RydWN0b3IKICAgIH5CdWZmZXIoKQogICAgewogICAgICAgIGRlbGV0ZVtdIGRhdGE7CiAgICB9CgogICAgLy8vb3BlcmF0b3JbXQogICAgVCYgb3BlcmF0b3JbXSh1bnNpZ25lZCBpbnQgaSkKICAgIHsKICAgICAgICBpZihpPnNpei0xKQogICAgICAgIHsKICAgICAgICAgICAgdW5zaWduZWQgaW50IG5ld3NpemU9c2l6KjI7CiAgICAgICAgICAgIFQqIHRtcD1uZXcgVFtuZXdzaXplXTsKICAgICAgICAgICAgZm9yKHVuc2lnbmVkIGludCBqID0gMDsgaiA8IHNpejsgaisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0bXBbal0gPSBkYXRhW2pdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHNpej1uZXdzaXplOwogICAgICAgICAgICBkZWxldGVbXSBkYXRhOwogICAgICAgICAgICBkYXRhPXRtcDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGRhdGFbaV07CiAgICB9Cn07ICAgICAKCmludCBtYWluKCkgewogICAgQnVmZmVyPGNoYXIqPiBzKDIwLCJzLnR4dCIsInJ3Iik7ICAgIC8vMjAgbG9uZyBjaGFyKgogICAgZm9yKHVuc2lnbmVkIGludCBpPTA7aTwyNDtpKyspeyAgIC8vaXQgb3ZlcndyaXRlcyB0aGUgc2l6ZSBvZiBzIGFmdGVyIGRlZmF1bHQgMjAKICAgICAgICBzW2ldPSJoZXkiOwogICAgfQp9