fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class classA
  5. {
  6. public:
  7. classA() {
  8. std::cout<<"Construct InstA At:"<<this<<std::endl;
  9. }
  10. classA(const classA& a){
  11. std::cout<<"Construct InstA At:"<<this<<" With A At "<<&a<<std::endl;
  12. }
  13. classA & operator=(const classA& a) {
  14. std::cout<<"Copy InstA At:"<<&a<<" To A At "<<this<<std::endl;
  15. return *this;
  16. }
  17. ~classA(){
  18. std::cout<<"Destruct InstA At:"<<this<<std::endl;
  19. }
  20. };
  21.  
  22. class classB
  23. {
  24. public:
  25. classA PropertOfInstanceA;
  26. classA* PropertOfInstanceAPointer;
  27. classB() {
  28. std::cout<<"Construct InstB At:"<<this<<std::endl;
  29. }
  30. classB(const classB& b){
  31. this->PropertOfInstanceA = b.PropertOfInstanceA;
  32. this->PropertOfInstanceAPointer = b.PropertOfInstanceAPointer;
  33. std::cout<<"Construct InstB At:"<<this<<" With B At"<<&b<<std::endl;
  34. }
  35. classB & operator=(const classB& b) {
  36. this->PropertOfInstanceA = b.PropertOfInstanceA;
  37. this->PropertOfInstanceAPointer = b.PropertOfInstanceAPointer;
  38. std::cout<<"Copy InstB At:"<<&b<<" To B At "<<this<<std::endl;
  39. return *this;
  40. }
  41.  
  42. ~classB(){
  43. std::cout<<"Destruct InstB At:"<<this<<std::endl;
  44. }
  45. };
  46.  
  47. classA createA()
  48. {
  49. classA instanceA;
  50. return instanceA;
  51. };
  52.  
  53. classB* createInstBPtrWithInstA(classA InstA)
  54. {
  55. classB* instanceBPointer = new classB();
  56. instanceBPointer->PropertOfInstanceA = InstA;
  57. return instanceBPointer;
  58. }
  59.  
  60. int main() {
  61. // your code goes here
  62. classA InstA;
  63. classB* InstBPtrWithInstA = createInstBPtrWithInstA(InstA);
  64.  
  65. return 0;
  66. }
  67.  
Success #stdin #stdout 0s 4268KB
stdin
Standard input is empty
stdout
Construct InstA At:0x7fff95199b76
Construct InstA At:0x7fff95199b77 With A At 0x7fff95199b76
Construct InstA At:0x55bca5763e80
Construct InstB At:0x55bca5763e80
Copy InstA At:0x7fff95199b77 To A At 0x55bca5763e80
Destruct InstA At:0x7fff95199b77
Destruct InstA At:0x7fff95199b76