fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct a {
  5. a(int) {
  6. cout << "+a" << endl;
  7. }
  8. ~a() {
  9. cout << "~a" << endl;
  10. }
  11. };
  12.  
  13. struct b {
  14. b(const a& a) {
  15. cout << "+b(a)" << endl;
  16. }
  17. b(const b& a) {
  18. cout << "+b(b)" << endl;
  19. }
  20. ~b() {
  21. cout << "~b" << endl;
  22. }
  23. b& operator=(const b& bb) {
  24. cout << "=b" << endl;
  25. }
  26. };
  27.  
  28. int main() {
  29. b b1(a(1));
  30. cout << "----" << endl;
  31. b b2= b(a(1));
  32. printf("%p %p\n", (void*)&b1, (void*)&b2);
  33. return 0;
  34. }
Success #stdin #stdout 0s 3096KB
stdin
Standard input is empty
stdout
+a
+b(a)
~a
----
+a
+b(a)
~a
0xbfb0e7de 0xbfb0e7df
~b
~b