fork download
  1. #include <iostream>
  2.  
  3. template <typename T>
  4. class my_smart_pointer
  5. {
  6. public:
  7. my_smart_pointer() { pt = nullptr; }
  8. my_smart_pointer(T* p) { pt = p; }
  9.  
  10. T& operator*() { return *pt; }
  11. const T& operator*() const { return *pt; }
  12.  
  13. private:
  14. T* pt;
  15. };
  16.  
  17. int main()
  18. {
  19. my_smart_pointer<int> pi;
  20. my_smart_pointer<int> pj { new int(42) };
  21.  
  22. // std::cout << *pi << '\n';
  23. std::cout << *pj << '\n';
  24. }
  25.  
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
42