fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct A{
  5. A(){
  6. std::cout << "new A\n";
  7. }
  8. ~A(){
  9. std::cout << "delete A\n";
  10. }
  11. };
  12.  
  13. class B{
  14. A *a;
  15. public:
  16. B(): a(new A){
  17. //Нормальный конструктор
  18. }
  19. B(int i): a(new A){
  20. //Конструктор с исключенеим
  21. throw i;
  22. }
  23.  
  24. ~B(){
  25. delete a;
  26. }
  27. };
  28.  
  29. int main() {
  30. B b1; //Все хорошо
  31. try{
  32. B b2(42); //Детруктор не вызван
  33. }catch(...){
  34.  
  35. }
  36. return 0;
  37. }
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
new A
new A
delete A