fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Object
  5. {
  6. public:
  7. Object();
  8. };
  9.  
  10. class scoped_ptr
  11. {
  12. Object *pObj;
  13. public:
  14. scoped_ptr(Object *pObject);
  15. scoped_ptr(const scoped_ptr& ptr);
  16. scoped_ptr& operator=(const scoped_ptr& ptr);
  17. };
  18.  
  19. Object::Object()
  20. {
  21. cout << "in constructor Object()" << endl;
  22. }
  23.  
  24. scoped_ptr::scoped_ptr(Object *pObject) : pObj(pObject)
  25. {
  26. cout << "in constructor scoped_ptr(Object*)" << endl;
  27. }
  28.  
  29. scoped_ptr::scoped_ptr(const scoped_ptr& ptr)
  30. {
  31. cout << "in constructor scoped_ptr(const scoped_ptr&)" << endl;
  32. pObj = ptr.pObj;
  33. }
  34.  
  35. scoped_ptr& scoped_ptr::operator=(const scoped_ptr& ptr)
  36. {
  37. cout << "in scoped_ptr::operator=(const scoped_ptr&)" << endl;
  38. pObj = ptr.pObj;
  39. return *this;
  40. }
  41.  
  42. int main()
  43. {
  44. scoped_ptr p = new Object();
  45. p = new Object();
  46. return 0;
  47. }
Success #stdin #stdout 0s 2984KB
stdin
Standard input is empty
stdout
in constructor Object()
in constructor scoped_ptr(Object*)
in constructor Object()
in constructor scoped_ptr(Object*)
in scoped_ptr::operator=(const scoped_ptr&)