fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class clsA {
  5. public:
  6. clsA() { cout << "clsA\n"; }
  7. ~clsA() { cout << "~clsA\n"; }
  8. };
  9.  
  10. class dlvA : public clsA {
  11. public:
  12. dlvA() { cout << "dlvA\n"; }
  13. ~dlvA() { cout << "~dlvA\n"; }
  14. };
  15.  
  16. class clsB {
  17. public:
  18. clsB() { cout << "clsB\n"; }
  19. virtual ~clsB() { cout << "~clsB\n"; }
  20. };
  21.  
  22. class dlvB : public clsB {
  23. public:
  24. dlvB() { cout << "dlvB\n"; }
  25. ~dlvB() { cout << "~dlvB\n"; }
  26. };
  27.  
  28.  
  29. int main() {
  30. {
  31. cout << "(1)\n";
  32. dlvA objA;
  33. }
  34. {
  35. cout << "(2)\n";
  36. dlvB objB;
  37. }
  38.  
  39. cout << "(3)\n";
  40. clsA* ptrA = new dlvA;
  41. delete ptrA;
  42.  
  43. cout << "(4)\n";
  44. clsB* ptrB = new dlvB;
  45. delete ptrB;
  46.  
  47. return 0;
  48. }
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
(1)
clsA
dlvA
~dlvA
~clsA
(2)
clsB
dlvB
~dlvB
~clsB
(3)
clsA
dlvA
~clsA
(4)
clsB
dlvB
~dlvB
~clsB