C++ Aşırı Yük Karşılaştırma Operatörü

C Asiri Yuk Karsilastirma Operatoru



İşleç aşırı yüklemesi, kullanıcı tanımlı veri türleriyle çalışırken yerleşik işleçlerin işlevselliğini elde etmenizi sağlayan, C++'da çok önemli bir kavramdır. C++'daki karşılaştırma operatörleri, “==”, “!=”, “>”, “<”, “>=” ve “<=” gibi iki değeri birbiriyle karşılaştırmak için var olan operatörlerdir. Bu makale, Ubuntu 20.04'te C++'da bu altı karşılaştırma işlecinin tümünü aşırı yükleme yöntemlerini paylaşacaktır.

Örnek 1: C++'da “==” Operatörünün Aşırı Yüklenmesi:

C++'da “==” operatörünü aşırı yüklemek için aşağıdaki C++ sınıfını tasarladık:







C++ sınıfımızın adı ProductPrice'dır. Bu sınıf içinde, özel bir üye “fiyatı” var. Bundan sonra, bazı genel üye fonksiyonlarımız var. “userInput” adlı ilk işlev, ürün fiyatını kullanıcıdan girdi olarak alır. Ardından, C++'da “==” operatörünü aşırı yükleme işlevimiz var. ProductPrice sınıfından bir nesneyi bu işleve ilettik. Bu fonksiyon içerisinde, iki ürünün fiyatları eşitse 'true', aksi takdirde 'false' döndürecek bir 'if' ifademiz var.



Bunu test etmek için, aşağıdaki resimde gösterilen sürücü işlevine sahibiz:







“main()” fonksiyonumuzda öncelikle sınıfımızın iki nesnesini oluşturduk. Ardından iki ürünün fiyatlarını kullanıcıdan girdi olarak almak için iki nesnenin her biri ile tek tek “userInput” fonksiyonunu çağırdık. Bundan sonra, iki fiyat eşitse bir mesaj, değilse başka bir mesaj yazdırmak için bir “if” ifademiz var.

Bu programı aşağıdaki komutu kullanarak derledik:



$ g++ ComparisonOperator.cpp –o ComparisonOperator

Ardından, aşağıda gösterilen komutu kullanarak yürüttük:

$ . / KarşılaştırmaOperatörü

Bu kodu çalıştırdıktan sonra, aşağıdaki resimde gösterildiği gibi ilk ürünün fiyatını girmemiz istendi:

Daha sonra aşağıdaki görseldeki gibi ikinci ürünün fiyatını girmemiz istendi:

Her iki ürün için de aynı fiyatları girdiğimiz için aşağıdaki çıktıda “==” operatörümüzün başarıyla aşırı yüklendiğini görebiliriz.

Şimdi ise “else” ifadesini test etmek için aşağıdaki görselde görüldüğü gibi iki farklı ürün fiyatı girdik:

Örnek 2: C++'da “!=” Operatörünün Aşırı Yüklenmesi:

C++'da “!=” operatörünü aşırı yüklemek için aşağıdaki C++ sınıfını tasarladık:

Bu program ilk örneğimize çok benziyor. Tek fark, “==” operatörünü her yerde “!=” operatörüyle değiştirmiş olmamızdır.

Bunu test etmek için, aşağıdaki resimde gösterilen sürücü işlevine sahibiz:

Kullanıcıdan girdi olarak iki ürünün fiyatlarını almak için iki nesnenin her biri ile teker teker “main()” fonksiyonumuzda “userInput” fonksiyonunu çağırdık. Bundan sonra, iki fiyat eşit değilse bir mesaj ve eşitlerse başka bir mesaj yazdırmak için bir “if” ifademiz var.

Bu kodu iki farklı ürün fiyatı ile çalıştırdığımızda, aşağıdaki görselden de görebileceğiniz gibi, eşitsizlik operatörümüzün başarıyla aşırı yüklendiğini anladık:

Şimdi, “else” ifadesini test etmek için, aşağıdaki resimde gösterildiği gibi iki benzer ürün fiyatı girdik:

Örnek 3: C++'da “>” Operatörünün Aşırı Yüklenmesi:

C++'da “>” operatörünü aşırı yüklemek için aşağıdaki C++ sınıfını tasarladık:

Bu program da yukarıdaki örneklerimize benzer. Tek fark, “!=” operatörünü her yerde “>” operatörüyle değiştirmiş olmamızdır.

Bunu test etmek için, aşağıdaki resimde gösterilen sürücü işlevine sahibiz:

Kullanıcıdan girdi olarak iki ürünün fiyatlarını almak için iki nesnenin her biri ile teker teker “main()” fonksiyonumuzda “userInput” fonksiyonunu çağırdık. Bundan sonra, ilk fiyat diğerinden büyükse bir mesaj, değilse başka bir mesaj yazdırmak için bir “if” ifademiz var.

Bu kodu iki farklı ürün fiyatı ile çalıştırdığımızda, aşağıdaki görüntüden de görebileceğiniz gibi, büyüktür operatörümüzün başarıyla aşırı yüklendiğini anladık:

Şimdi, “else” ifadesini test etmek için, aşağıdaki resimde gösterildiği gibi iki benzer ürün fiyatı girdik:

Örnek 4: C++'da “<” Operatörünün Aşırı Yüklenmesi:

C++'da “<” operatörünü aşırı yüklemek için aşağıdaki C++ sınıfını tasarladık:

Bu program da yukarıdaki örneklerimize benzer. Tek fark, “>” operatörünü her yerde “<” operatörüyle değiştirmiş olmamızdır.

Bunu test etmek için, aşağıdaki resimde gösterilen sürücü işlevine sahibiz:

Kullanıcıdan girdi olarak iki ürünün fiyatlarını almak için iki nesnenin her biri ile teker teker “main()” fonksiyonumuzda “userInput” fonksiyonunu çağırdık. Bundan sonra, ilk fiyat diğerinden düşükse bir mesaj, değilse başka bir mesaj yazdırmak için bir “if” ifademiz var.

Bu kodu iki farklı ürün fiyatı ile çalıştırdığımızda, aşağıdaki görüntüden de görebileceğiniz gibi, less than operatörümüzün başarıyla aşırı yüklendiğini anladık:

Şimdi ise “else” ifadesini test etmek için yine iki farklı ürün fiyatı girdik ancak bu sefer aşağıdaki görselde görüldüğü gibi ilk ürünün fiyatı ikinci üründen daha yüksek:

Örnek 5: C++'da “>=” Operatörünün Aşırı Yüklenmesi:

C++'da “>=” operatörünü aşırı yüklemek için aşağıdaki C++ sınıfını tasarladık:

Bu, yukarıdaki örneklerimizden biraz farklıdır. Operatöre bu sefer aşırı yüklenirken “if” ifadesi içerisinde “||” ile ayrılmış iki şartımız var. sembol. Bu, bu ifadenin bir ürünün fiyatının diğerinden yüksek veya eşit olup olmadığını kontrol edeceği anlamına gelir.

Bunu test etmek için, aşağıdaki resimde gösterilen sürücü işlevine sahibiz:

Kullanıcıdan girdi olarak iki ürünün fiyatlarını almak için iki nesnenin her biri ile teker teker “main()” fonksiyonumuzda “userInput” fonksiyonunu çağırdık. Bundan sonra, ilk fiyat diğerinden büyük veya ona eşitse bir mesaj ve değilse başka bir mesaj yazdırmak için bir “if” ifademiz var.

Bu kodu iki farklı ürün fiyatı ile çalıştırdığımızda, aşağıdaki görüntüden de görebileceğiniz gibi, büyük eşittir operatörümüzün başarıyla aşırı yüklendiğini anladık:

Şimdi ise “else” ifadesini test etmek için aşağıdaki görselde görüldüğü gibi ilk ürün fiyatını ikinci ürün fiyatından daha düşük girdik:

Örnek 6: C++'da “<=” Operatörünün Aşırı Yüklenmesi:

Beşinci örneğimizle aynı yöntemi izleyerek “<=” operatörünü de aşırı yükledik ve kodu aşağıdaki gibidir:

Bu programın farklı değerlerle yürütme sonuçları aşağıdaki resimlerde gösterilmektedir:

Çözüm:

Bu makale, Ubuntu 20.04'te C++'daki altı karşılaştırma işlecini nasıl aşırı yükleyebileceğinizi çok iyi açıkladı. İşleç aşırı yüklemesine kısa bir giriş yaparak başladık, ardından C++'daki altı karşılaştırma işlecinin tümü aşırı yüklendi. Tüm bu yöntemleri göstermek için aynı kullanıcı tanımlı sınıfı kullandık. Bu yöntemleri bir kez inceledikten sonra, bu karşılaştırma işleçlerini diğer herhangi bir kullanıcı tanımlı sınıf için aşırı yükleyebileceksiniz.