Constructer Flashcards
Overloading
Bir class constructerı çağırıken farklı parametreler vererek bu consturcteri overload edebiliriz. Hangi constructerı çağırmak istersek ona göre parametre verebiliriz.
Örneğin;
MyClass adında bir sınıf oluşturduk.
—-ilk constructerımımız MyClass(){
cout«_space;“DEFAULT”«_space;endl;
}
—-ikinci constructerımımız MyClass(int a ){
cout«_space;“int const”«_space;endl;
}
int main()
MyClass m1 = 5;
ya da
MyClass m2(5);
// dersek ikinci constructer çağrılır çünkü bir parametre (int) değeri girdik.
Destructer
Delete object
end of main
end of block için kullanılır.
~MyClass
Destructerda overload yoktur. ne görürse bitirir siler. Destructer blok bittiğinde çağrılır.
önceden çapırmak istersek;
MyClass m1;
m1.~MyClass(); //blok bitmeden çağrıldı. ama elle çağırısak nesne tam olarak silinmedi.
Dinamik yer ayrımında Destructer
MyClass *pd = new MyClass;
// burda default destructer çağrılmaz.
Dinamik erişimde
delete pd; // kullanarak silmemiz gerekiyor. DELETE ifadesi burda tanımlanan destructerı çağırır.
MyClass *pd = new MyClass[5];
delete[] pd;
// diyerek tüm sınıfları yıkabiliriz.
Fonksiyon ile Class yaratmada destructer
void func()
{
static MyClass m; //statik tanımladığımız için global olarak sayılır ve destructer main bloğu sonlanınca çağrılır
}
int main()
func();
cout «_space;“main end”«endl;
void func()
{
MyClass m; //çağrıldığında fonksiyon bloğu bittiğinde sonlanır. Main bloğu bittiğinde değil.