3.2 Sınıflar ve Objeler

C++'da sınıflar, nesne yönelimli programlamanın temel yapı taşlarıdır. Sınıflar, belirli bir veri kümesi ve bu verilere yönelik işlevler (metotlar) içeren bir şablondur. Nesneler ise bu sınıfların örnekleridir. Her nesne, sınıfın tanımladığı özellikleri ve işlevleri barındırır.

Sınıf Tanımı

Bir sınıf tanımlarken, o sınıfa ait değişkenleri (özellikler) ve fonksiyonları (metotlar) belirleriz. Sınıfın içeriği, "public", "private" veya "protected" erişim belirleyicileri ile düzenlenir.

class Araba {
private:
    std::string marka; // Özellik
    int yil; // Özellik

public:
    // Constructor (Yapıcı Metot)
    Araba(std::string m, int y) : marka(m), yil(y) {}

    // Metotlar
    void bilgiGoster() {
        std::cout << "Marka: " << marka << ", Yıl: " << yil << std::endl;
    }
};

Nesne Oluşturma

Bir sınıf tanımlandıktan sonra, bu sınıftan nesneler oluşturabiliriz. Aşağıdaki örnekte, Araba sınıfından araba1 ve araba2 adında iki nesne oluşturulmuştur.

int main() {
    // Nesne oluşturma
    Araba araba1("Toyota", 2020);
    Araba araba2("Ford", 2019);

    // Metot çağrısı
    araba1.bilgiGoster();
    araba2.bilgiGoster();

    return 0;
}

Sınıfın Özellikleri ve Metotları

Sınıflar, özelliklerin yanı sıra metotlar da içerebilir. Metotlar, sınıfa ait verilere erişmek ve bu veriler üzerinde işlemler yapmak için kullanılır. Aşağıdaki örnekte Araba sınıfının bir bilgiGoster() metodu bulunmaktadır.

void bilgiGoster() {
    std::cout << "Marka: " << marka << ", Yıl: " << yil << std::endl;
}

Constructor ve Destructor

Constructor (yapıcı metot), bir nesne oluşturulduğunda otomatik olarak çağrılan bir metottur. Sınıfın özelliklerini başlatmak için kullanılır. Destructor (yıkıcı metot) ise bir nesne bellekten silindiğinde çağrılır ve kaynakları serbest bırakmak için kullanılır.

// Yapıcı metot
Araba(std::string m, int y) : marka(m), yil(y) {}

// Yıkıcı metot
~Araba() {
    // Temizlik işlemleri
}

Örnek

Aşağıdaki örnekte Araba sınıfı oluşturulmuş ve bu sınıf üzerinden nesneler oluşturulmuştur:

#include <iostream>
#include <string>

class Araba {
private:
    std::string marka;
    int yil;

public:
    Araba(std::string m, int y) : marka(m), yil(y) {}

    void bilgiGoster() {
        std::cout << "Marka: " << marka << ", Yıl: " << yil << std::endl;
    }
};

int main() {
    Araba araba1("Toyota", 2020);
    Araba araba2("Ford", 2019);

    araba1.bilgiGoster();
    araba2.bilgiGoster();

    return 0;
}

Sonuç

C++'da sınıflar ve nesneler, veri yapıları ve işlevsellikleri bir araya getirerek daha karmaşık ve ölçeklenebilir uygulamalar geliştirmeye olanak tanır. Sınıflar sayesinde, programcılar kodlarını daha düzenli ve anlaşılır bir şekilde organize edebilirler. Bu, yazılımın bakımını ve genişletilmesini kolaylaştırır.

Last updated