C++ set ve get Fonksiyonları

Sınıflara Giriş yazısında set ve get fonksiyonlarından kısaca bahsedilmişti. Private içerisindeki sınıf değişkenleri ile güvenli şekilde işlem yapabilmek için get ve set fonksiyonları kullanılır.

Mucit isimli bir sınıf tanımladık. Daha sonra ise public içerisinde void yani değer döndürmeyen set sınıf metotu bildirildi, bir diğer sınıf metotu olan string değeri döndüren get fonksiyonu bildirildi. Private içerisinde ise sınıf değişkeni adSoyad tanımlandı.
class Mucit{
    public:
        void set(string);
        string get();
    private:
        string adSoyad; 
};
Sınıf metotların gövde kodları ise aşağıdaki gibi yazılır. set() fonksiyonu parametre olarak string tipinde as değişkeni alıyor, bu değişkenin değerinin private alanında tanımlı adSoyad değişkenine ataması gerçekleştiriliyor. get() fonksiyonu ise adSoyad değişkeninin değerini string tipinde döndürmektedir.
void Mucit::set(string as){
    adSoyad = as;
}

string Mucit::get(){
    return adSoyad;
}
main fonksiyonunda mct1 adlı nesne oluşturduk. Bu nesneye ait adSoyad değişkenine ise set fonksiyonu ile değer ataması gerçekleştirildi. Mucit adı ekrana yazdırmak için get fonksiyonu ile adSoyad değişkenin değeri döndürüldü.
int main(){
    Mucit mct1;
    mct1.set("Nikola Tesla");
    cout << "Mucit adi: " << mct1.get() << endl;
}
Genel anlamda set ve get fonksiyonlarının kullanım amacını anladıysak biraz daha işi ilerletelim. Kullanıcı istenen bilginin doğru şekilde veri girişini yapmayabilir. Örneğin telefon numarasını 10 haneli girmesi gerekirken, 11 veya 9 haneli veya harf şeklinde girebilir. Bu durumu engellemek içinse set fonksiyonu içerisinde bazı eklemeler yapılabilir. Örnek olarak telefon rehberi sınıfı yazalım ve verinin doğrulanmasını sağlayalım.
#include <iostream>
#include <string>

class TelefonRehberi{
    public:
        void set(string);
    private:
        string telNo;
};

void TelefonRehberi::set(string t){
    if(t.length()==10)
        telNo = t;
    else{
        cout << "Lutfen 5XXXXXXXXX numarayi 10 haneli olacak sekilde giriniz!" << endl;
    }
}

int main(){
    TelefonRehberi tel1;
    tel1.set("asfjhjsdhf232");
    tel1.set("5223232323");
}

Hiç yorum yok:

Yorum Gönderme