Const Correctness: C++'da Değişmezliği Garanti Etme

# Const Correctness: C++'da Değişmezliği Garanti Etme

C++'da const anahtar sözcüğü, bir değişken ya da nesnenin çalışma sırasında değiştirilmesini engellemek için kullanılır. Bu sayede derleyici, hata yapma olasılığını azaltır ve kodun niyetini açıkça ifade edersin.

Bir değişkeni const olarak işaretlediğinde, derleyici ona atama yapılmasını engeller. Böylece veri bütünlüğü korunur ve mantıksal hatalar erken yakalanır. Örneğin, bir işlev bir değeri sadece okumalı, değiştirmemelidir, bunu const ile garantiye alabilirsin.

Sabit bir değer tanımla:

1 <iostream>
2using namespace std;
3
4int main() {
5const int MAX_USERS = 100;
6// MAX_USERS = 200; // HATA: const değişken değiştirilemez
7cout << "Maksimum kullanıcı: " << MAX_USERS << endl;
8return 0;
9}

Çıktı:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1Maksimum kullanıcı: 100

Bir işlev nesneyi değiştirmeyecekse, const olarak işaretле:

1 <iostream>
2using namespace std;
3
4class Hesap {
5private:
6double bakiye;
7public:
8Hesap(double b): bakiye(b) {}
9
10// const işlev: bakiye'yi değiştiremiyor
11double getBakiye() const {
12return bakiye;
13}
14
15// const olmayan işlev: bakiye'yi değiştirebiliyor
16void paraCek(double miktar) {
17bakiye -= miktar;
18}
19};
20
21int main() {
22const Hesap h(1000);
23cout << "Bakiye: " << h.getBakiye() << endl;
24// h.paraCek(100); // HATA: const nesne non-const işlev çağıramaz
25return 0;
26}

Çıktı:

1Bakiye: 1000

Bir işleve const referans geçirerek veriyi değiştirmesini engelle:

1 <iostream>
2using namespace std;
3
4void yazdir(const string& metin) {
5cout << metin << endl;
6// metin = "başka"; // HATA: const referans değiştirilemez
7}
8
9int main() {
10string mesaj = "Merhaba Dünya";
11yazdir(mesaj);
12return 0;
13}

Çıktı:

1Merhaba Dünya

Const kullanımı üç temel yerde işe yarar: sabit değişkenler, değiştirilmeyecek nesneleri işlev parametresi olarak geçme ve bir işlevin nesne durumunu değiştirmeyeceğini belirtme. Derleyici bu garantileri kontrol eder, böylece beklenmedik değişikliklerden korunursun.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz