fork download
  1. #include <iostream>
  2. #include <memory>
  3.  
  4. using namespace std;
  5.  
  6. class A {
  7. public:
  8. A(){}
  9. int i;
  10. int j;
  11. };
  12.  
  13. class B {
  14. public:
  15. B() = default;
  16. int i;
  17. int j;
  18. };
  19.  
  20. int main()
  21. {
  22. cout << "1" << endl;
  23. for( int i = 0; i < 3; ++i)
  24. {
  25. A* pa = new A();
  26. B* pb = new B();
  27. cout << "A : " << pa->i << "," << pa->j << endl;
  28. cout << "B : " << pb->i << "," << pb->j << endl;
  29. delete pa;
  30. delete pb;
  31. }
  32. cout << "2" << endl;
  33. for( int i = 0; i < 3; ++i)
  34. {
  35. shared_ptr<A> pa = make_shared<A>();
  36. shared_ptr<B> pb = make_shared<B>();
  37. cout << "A : " << pa->i << "," << pa->j << endl;
  38. cout << "B : " << pb->i << "," << pb->j << endl;
  39. }
  40. cout << "3" << endl;
  41. for( int i = 0; i < 3; ++i)
  42. {
  43. shared_ptr<A> pa ( new A() );
  44. shared_ptr<B> pb ( new B() );
  45. cout << "A : " << pa->i << "," << pa->j << endl;
  46. cout << "B : " << pb->i << "," << pb->j << endl;
  47. }
  48. cout << "4" << endl;
  49. for( int i = 0; i < 3; ++i)
  50. {
  51. shared_ptr<A> pa ( new A );
  52. shared_ptr<B> pb ( new B );
  53. cout << "A : " << pa->i << "," << pa->j << endl;
  54. cout << "B : " << pb->i << "," << pb->j << endl;
  55. }
  56. return 0;
  57. }
  58.  
Success #stdin #stdout 0s 3236KB
stdin
Standard input is empty
stdout
1
A : 0,0
B : 0,0
A : 163729408,0
B : 0,0
A : 163729424,0
B : 0,0
2
A : 0,0
B : 0,0
A : 0,0
B : 0,0
A : 0,0
B : 0,0
3
A : 163729408,0
B : 0,0
A : 163729408,0
B : 0,0
A : 163729408,0
B : 0,0
4
A : 163729408,0
B : 0,0
A : 163729408,0
B : 0,0
A : 163729408,0
B : 0,0