Tuesday

13

December

2016


0

YORUM


Compe 225 | C++ Ders 7 – Constructor Nedir ?

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

c++,constructor,ders notları,konu anlatımıd,nasıl kullanılır,nedir,örnekleri,davutkaraÖncelikle aşağıdaki tanımları anlayalım.

Decleration:  Tanımlama anlamına gelir mesela function decleration fonksiyon tanımlamadır.

İnitialization: Bir şeyin başlangıcında yapılan işlem, mesela int x= 5; x e 5 değerini atamak.

Member veriable (attribute –de denir.) : Class içindeki değişkenlere verilen isim.

Member function(method –da denir.): Class içindeki fonksiyonlara verilen isim.

Object: Classı barındıran değişken.

Bu kelimeleri sıkça kullanacağım.

Constructor Nedir ?

Objemiz oluştuğu andan itibaren otomatik olarak çalıştırılan fonksiyon diyebiliriz. Biz ilk çalıştırma anında bir şeyleri sıfırlamak ve ya bir şeylere default değer ataması yaparız. Consturctorda bu işe yarıyor.

class Person{
private:
string name;
int age;
public:
Person(){//default constructor
name = "Davut";
age = 21;
}	
};
int main(){
Person Kullanici;
return 0;
}

 

Main de Kullanici objesi oluştuğu anda koyu olarak işaretlediğim kısım çalıştırılıyor. Dolayısıyla object içindeki class içindeki name veriable ı “Davut” değerini alıyor. Age veriable ı ise 21 değerini alıyor.

Consturctor nasıl yazılır ?

  • Normal function gibi yazıyoruz ama return type ı yok ve adı class adı ile aynı olmak zoruna.

Şimdi gördüğünüz gibi fonksiyona benziyor ve parantez kısmı var yani içine parametre yazabileceğimiz anlamına geliyor. Aşağıdaki örnektede constructor a nasıl parametre yazarız ve nasıl parametre yollarız onu göreceğiz.

class Person{
private:
string name;
int age;
public:
Person(string n,int yas){
name = n;
age = yas;
}	
};
int main(){
Person Kullanici("Davut",21);
return 0;
}

Tıpkı bir fonksiyona parametre yollar ve alır gibi yapıyoruz gördüğünüz gibi, ama sadece bunu objeyi oluşturduğumuz anda yapabiliyoruz sonrasında böyle bir işlem yapamayız. Objeyi oluştururken bir yandanda parametre yolluyoruz.

AŞAĞIDA CONSTRUCTOR DECLEARTION İÇİN FARKLI ÖRNEKLERDE MEVCUT.

// 4-dot kullanarak dışardan tanımlama.
class Person{
private:
string name;
int age;
public:
Person(string n,int yas); // Constructor prototype.
};
Person::Person(string n,int yas){ // Constructor decleration.
name = n;
age = yas;
}	
int main(){
Person Kullanici("Davut",21);
return 0;
}

normal fonskyionu dışarda tanımlarkenki benzerlik gibi class içine de constructor prototype ını yazıyoruz.

4-dot ı namespacelerde kullanmıştık. Br şeyin içine erişirken kullanıyorduk burdada aynı şekilde class ın içindeki fonksiyonlara erişirken 4-dot kullanırız.

Class_name::class_method()

2 adet constructor çeşiti vardır, biri parametreli biri parametresiz. Yukarda 2 sininde örneğini verdik.

Parametresiz olan : Default Constructor

Parametreli olan: Parameterized constructor

♦ Unutmayalım : fonksiyonlardaki kurallar bu constructor içinde geçerli mesela 2 adet parametresi varsa 2 adet parametre göndermeliyiz, eğer 1 tane göndermek istiyorsak diğer parametrede parameter initializition yapılmalı.

int fonksiyon(int a, int b=5){
return a*b;
}

Burada int b = 5 parameter initializition ‘dır.

Bu fonksiyonu main de fonksiyon(5); olarak kullanabiliriz.

Constructor içinde bu şey geçerlidir.

Diğer bir parametrized constructor tanımlama şekli (bu yöntem sevilir.)

class Person{
private:
string name;
int age;
public:
Person(string n,int yas):name(n),age(yas){}//<- Burası
/* Veya böylede olur.
Person(string n,int yas):name(n),age(yas){
// yapmak istediğiniz diğer işlemler
}
*/
};
int main(){
Person Kullanici("Davut",21);
return 0;
}

<- Burası yazdığım kısmı inceleyiniz, mantıklıdır. Değişik bir kullanımdır, ama derste çok yapıyoruz.