CodeBlanks Logo Icon CodeBlanks

Karşılaştırma operatörleri

== ve < operatörlerini aşırı yüklemeyi öğrenirsin.

Karşılaştırma operatörleri

Karşılaştırma operatörleri ==, !=, <, <=, >, >= aşırı yüklenebilir. bool döndürürler.

Örnek: bool operator==(const Score& other) const { return value == other.value; }. Bu, iki Score nesnesini == ile karşılaştırmayı sağlar. a == b ifadesi true veya false döndürür. Karşılaştırma operatörleri genellikle const olarak yazılır çünkü nesneyi değiştirmezler. Sıralama için operator< tanımlamak yeterlidir; std::sort bunu kullanır.

operator< ve sıralama

operator< bir nesnenin diğerinden küçük olup olmadığını söyler. std::sort ve diğer STL algoritmaları bu operatörü kullanır.

Örnek: bool operator<(const Score& other) const { return value < other.value; }. Bu, Score nesnelerini value'ya göre sıralamayı sağlar. Bir std::vector<Score>'u std::sort(v.begin(), v.end()) ile sıraladığında, derleyici operator<'ı kullanır. Eğer operator< tanımlı değilse sıralama derleme hatası verir. Bu yüzden sıralanabilir sınıflarda operator< tanımlamak önemlidir.

Uygulama Score sınıfına operator== ekle

Başlangıç kodundaki Score sınıfına operator== ekle: gövdesi return value == other.value;. main içinde a == b'yi karşılaştır; eşitse "Eşit", değilse "Farklı" yazdır.

Başlangıç kodu

main.cpp
#include <iostream>

class Score {
public:
    int value;
    Score(int v) : value(v) {}
    // Eşitlik operatörünü ekle
};

int main() {
    Score a(10);
    Score b(10);
    // a == b karşılaştır ve sonucu yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>

class Score {
public:
    int value;
    Score(int v) : value(v) {}
    bool operator==(const Score& other) const {
        return value == other.value;
    }
};

int main() {
    Score a(10);
    Score b(10);
    if (a == b) {
        std::cout << "Eşit";
    } else {
        std::cout << "Farklı";
    }
    return 0;
}

Beklenen çıktı

Eşit

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Karşılaştırma operatörleri hangi türü döndürür?

main.cpp
bool operator==(const Score& other) const;
  • int
  • Score
  • bool Doğru cevap
  • void

Açıklama: Karşılaştırma operatörleri bool döndürür.

2 Eşitlik operatörü adı

Soru
bool ____(const Score& other) const { return value == other.value; }
Cevap
bool operator==(const Score& other) const { return value == other.value; }

Açıklama: operator== eşitlik karşılaştırması yapar.

3 Operatörü amacına eşle

Kavram Anlamı
operator== Eşitlik
operator< Küçük mü
operator!= Eşit değil
operator>= Büyük veya eşit

Orta seviye bölümündeki tüm dersler