Karşılaştırma operatörleri
- C++ kursu
- Orta seviye
- Ders 108/116
- 5 dk
== 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
#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
#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?
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ı
bool ____(const Score& other) const { return value == other.value; }
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 |