Aşağıdaki kodu düşünün atıldığında Yokedici aramadı:bir istisna
#include <iostream>
using namespace std;
class Test {
static int count;
int id;
public:
Test() {
count++;
id = count;
cout << "Constructing object number " << id << endl;
if(id == 4)
throw 4;
}
~Test() { cout << "Destructing object number " << id << endl; }
};
int Test::count = 0;
int main() {
try {
Test array[5];
} catch(int i) {
cout << "Caught " << i << endl;
}
}
Yukarıdaki kod aşağıdaki çıktıyı üretir:
Constructing object number 1
Constructing object number 2
Constructing object number 3
Constructing object number 4
Destructing object number 3
Destructing object number 2
Destructing object number 1
Caught 4
Ben nesne kapsam dışında olunca yıkıcılar hep denir sanıyordum istisnalar atıldığında bile. Bu durumda neden Test
örneğinin 'yıkıcısı' aranmıyor?
Sorunuzu Stack Overflow için daha uygun bir şeye düzenledim. Lütfen ileride başvurmak için [soru yönergelerini] (http://stackoverflow.com/questions/how-to-ask) takip edin veya sorunuzun yanıtsız/kapalı olabilir. –