Advertisement
Guest User

Untitled

a guest
Jun 21st, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. template<typename T>
  4. class SmartPtr{ //smart pointery różnią się tym, że automatycznie czyszcza pamiec (nie musimy używac słowa delete)
  5. T *ptr;
  6. public:
  7. explicit SmartPtr(T *ptr=NULL){
  8. std::cout<<"Utworzono "<< std::endl;
  9. this->ptr=ptr;
  10. }
  11. ~SmartPtr(){
  12. delete(ptr);
  13. std::cout<<"Usunięto "<< std::endl;
  14. }
  15. T * operator ->(){ //zwraca pointer
  16. return ptr;
  17. }
  18. T &operator *(){
  19. return *ptr;
  20. }
  21. };
  22.  
  23. int main()
  24. {
  25. SmartPtr<int> ptr(new int());
  26. *ptr=30;
  27. std::cout<<*ptr<<std::endl;
  28. SmartPtr<double> ptra(new double());
  29. *ptra=12;
  30. std::cout<<*ptra<<std::endl;
  31.  
  32. return 0;
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement