Tuesday

13

December

2016


0

YORUM


Compe 225 | C++ Ders 8 – Destructor Nedir ?

7 ay önce yazıldı, 7 ay önce güncellendi.

c++,çalışma,ders notu,destructor,konu anlatımı,mantığı,nasıl kullanılır,nedir,örnekler,sırası,davutkaraConstructor, objemiz oluşturulduğunda çalışıyordu dolayısıyla ~destructor da objemiz kapandığında silindiğinde çalışır. Objenin ne zaman silindiğini anlamak için için eğer return kelimesi varsa return kelimesinden hemen öncesini yoksa bulunduğu scope un kapandığı yeri belirleyerek o noktada silindiğini anlayabilirsiniz.

Fazladan Not: Şuan görmedik ama ilerde new and delete işlemini gördüğümüzde obje delete edildiğinde de destructor çalışacak.

scope:  {} süslü parantezlerinin içinde kalan kısım scope dur kod bloğu diyede geçer.

Yani  main de return 0 dan bir önce destructor çalışır.

#include <iostream>
using namespace std;
class Person{
private:
string name;
int age;
public:
Person(string n,int yas):name(n),age(yas){}
}
~Person(){
cout << "Obje silindi.";
}
};
int main(){//Scope burda başlar
Person Kullanici("Davut",21);
Cout << “Ali veli”;
return 0;
}//Scope burda biter

Yani özetle destructor

  • Obje kapandığında çalışır.
  • Decleration ı ~Class_adı(){} şeklindedir.
  • Önemli Bilgi: Sırasıyla m1,m2,m3 adında class lar açıtığımızı düşünelim bu classlar kapandığı vakit destructor sondan başa doğru ters olarak çalışır yani m3,m2,m1 olarak çalışır.

#include <iostream>
using namespace std;
class Person{
private:
string name;
int age;
public:
Person(string n,int yas):name(n),age(yas){}
}
~Person(){
cout << "Obje silindi."<<name<<endl;
}
};
int main(){
Person Kullanici1("Davut",21);
Person Kullanici2("Ahmet",23);
Person Kullanici3("İsyankar06",17);
return 0;
}
/*
OUTPUT:
Obje silindi.İsyankar06
Obje silindi.Ahmet
Obje silindi.Davut
*/

Yani burada gördüğünüz gibi destructor en son hangi class açıldıysa ilk onun destructor ı çalışacak şekilde oluyor. Dolayısıyla aşağıdan-yukarı, sondan-başa doğru çalışıyor.