Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- template<typename T>
- class SmartPtr{ //smart pointery różnią się tym, że automatycznie czyszcza pamiec (nie musimy używac słowa delete)
- T *ptr;
- public:
- explicit SmartPtr(T *ptr=NULL){
- std::cout<<"Utworzono "<< std::endl;
- this->ptr=ptr;
- }
- ~SmartPtr(){
- delete(ptr);
- std::cout<<"Usunięto "<< std::endl;
- }
- T * operator ->(){ //zwraca pointer
- return ptr;
- }
- T &operator *(){
- return *ptr;
- }
- };
- int main()
- {
- SmartPtr<int> ptr(new int());
- *ptr=30;
- std::cout<<*ptr<<std::endl;
- SmartPtr<double> ptra(new double());
- *ptra=12;
- std::cout<<*ptra<<std::endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement