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
Was this helpful?