fork download
  1. #include<iostream>
  2. #include<string>
  3.  
  4. using std::cout; using std::endl;
  5. using std::string;
  6.  
  7. class NoName
  8. {
  9. public:
  10. NoName(string sName = "Alice In Wonderland") :
  11. pstring(new string(sName))
  12. {
  13. cout << "ctor - " << *pstring << endl;
  14. }
  15. NoName(const NoName& rhs) :
  16. pstring(new string(*rhs.pstring))
  17. {
  18. cout << "Copy ctor - " << *pstring << endl;
  19. }
  20. NoName& operator=(const NoName& rhs)
  21. {
  22. *pstring = *rhs.pstring;
  23. cout << "Copy assignment operator - " << *pstring << endl;
  24. return *this;
  25. }
  26.  
  27. ~NoName()
  28. {
  29. cout << "dtor, my name was " << *pstring << endl;
  30. delete pstring;
  31. }
  32. private:
  33. string *pstring;
  34. };
  35.  
  36. class Better
  37. {
  38. public:
  39. Better(string sName = "Alice In Wonderland") :
  40. m_string(sName)
  41. {
  42. }
  43. private:
  44. string m_string;
  45. };
  46.  
  47. int main()
  48. {
  49. NoName m, n("Another name");
  50. NoName o(m);
  51. o = n;
  52.  
  53. return 0;
  54. }
Success #stdin #stdout 0s 3032KB
stdin
Standard input is empty
stdout
ctor - Alice In Wonderland
ctor - Another name
Copy ctor - Alice In Wonderland
Copy assignment operator - Another name
dtor, my name was Another name
dtor, my name was Another name
dtor, my name was Alice In Wonderland