Aritmetik ve Karşılaştırma Operatörleri
En iyi uygulamaları izleyerek +, -, *, /, ==, < ve ilgili operatörleri aşırı yükleyin
Aritmetik ve Karşılaştırma Operatörleri, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C++ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C++ Academy kursu toplamda 4 dersten oluşur.
İşleçler Neden Aşırı Yüklenir?
İşleç aşırı yükleme, türlerinizin yerleşik türler gibi davranmasını sağlar — v1 + v2, v1.add(v2) ifadesinden daha okunaklıdır. Vektörler, karmaşık sayılar ve para gibi değer türlerinde kullanın.
operator+ Tanımlama
+ işleçlerini üye işlev veya serbest işlev olarak aşırı yükleyebilirsiniz. Serbest işlevler daha simetriktir.
struct Vec2 {
double x, y;
Vec2 operator+(const Vec2& other) const {
return {x + other.x, y + other.y};
}
};Serbest İşlev Biçimi
Serbest işlev, her iki işlenene aynı statüyü verir — dönüştürme her iki tarafa da uygulanabildiğinde kullanışlıdır.
Vec2 operator+(const Vec2& a, const Vec2& b) {
return {a.x + b.x, a.y + b.y};
}Bileşik Atama İşleçleri
Önce += işleçlerini gerçekleştirin; sonra + işleçlerini bunun üzerine kurun. Bu, yerleşik kullanımdır.
Vec2& operator+=(const Vec2& other) {
x += other.x;
y += other.y;
return *this;
}
Vec2 operator+(Vec2 lhs, const Vec2& rhs) {
lhs += rhs;
return lhs;
}Tekli İşleçler
Bazı işleçler teklidir: -x, +x, !x, ~x, ++x, --x.
Vec2 operator-() const { return {-x, -y}; }Önek ve Sonek Artırma
Önek biçimi parametre almaz; sonek biçimi, ayırt etmek için göstermelik bir int alır.
Counter& operator++(); // prefix
Counter operator++(int); // postfixKarşılaştırma İşleçleri
Karşılaştırma işleçleri bool döndürür. Tutarlılık için serbest işlevler en iyi sonucu verir.
bool operator==(const Vec2& a, const Vec2& b) {
return a.x == b.x && a.y == b.y;
}
bool operator!=(const Vec2& a, const Vec2& b) { return !(a == b); }Sıralama İçin Küçüktür
Türünüzün sıralanması veya bir harita anahtarı olarak kullanılması gerekiyorsa operator< tanımlayın. Diğer ilişkisel işleçler bundan türetilir.
Simetrik Karma Tür İşleçleri
3 + vec ile vec + 3 ifadelerinin ikisini de desteklemek için her ikisini de tanımlayın veya dönüştürme yapan bir serbest işlev kullanın.
Sürprizlerden Kaçının
Aşırı yüklenmiş işleçler sezgisel davranmalıdır. Çıkarma anlamına gelmesi için + işlecini yeniden tanımlamayın. İşlecin geleneksel cebirsel anlamına bağlı kalın.
Aşırı Yükleyemeyeceğiniz Operatörler
Bazı operatörleri aşırı yükleyemezsiniz:
?:— üçlü operatör.— üye erişimi (->ise aşırı yüklenebilir)::— kapsam çözümlemesizeof,alignof,typeid
Kısa Kontrol
Kullanıcı tanımlı bir tür için operator+ uygulamasının standart uygulama kalıbı nedir?
Özet
Operatör aşırı yükleme, kullanıcı tanımlı türlerin yerleşik türler gibi kullanılmasını sağlar. Önce bileşik atama işlemini, ardından normal aritmetik işlemleri uygulayın. Karşılaştırma operatörlerini bağımsız işlevler olarak tanımlamak en iyisidir. Geleneksel anlamlara bağlı kalın; beklenmedik davranışlar bir hatadır.
Sıkça Sorulan Sorular
“Aritmetik ve Karşılaştırma Operatörleri” dersi ücretsiz mi?
Evet — “Aritmetik ve Karşılaştırma Operatörleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C++ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C++ Academy kursu toplamda 4 dersten oluşur.
“Aritmetik ve Karşılaştırma Operatörleri” dersinde ne öğreneceğim?
En iyi uygulamaları izleyerek +, -, *, /, ==, < ve ilgili operatörleri aşırı yükleyin C++ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C++ Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C++ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Aritmetik ve Karşılaştırma Operatörleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C++ Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C++ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Aritmetik ve Karşılaştırma Operatörleri
- Akışa Ekleme ve Akıştan Çıkarma Operatörleri
- Alt Simge ve İşlev Çağrısı Operatörleri
- Üç Yönlü Karşılaştırma Operatörü C++20