CodeBlanks Logo Icon CodeBlanks

Aritmetik operatörler

+ ve - operatörlerini aşırı yüklemeyi öğrenirsin.

Aritmetik operatörler

Aritmetik operatörlerin hepsi aşırı yüklenebilir: +, -, *, /, %. Her biri bir operator fonksiyonu olarak tanımlanır.

Örnek: Vector2 operator-(const Vector2& other) const { return Vector2(x - other.x, y - other.y); }. Bu, a - b ifadesini sağlar ve bileşenleri birbirinden çıkarır. Aynı yapı operator* ve operator/ için de kullanılır. Çarpma için bir skaler çarpan da parametre olabilir: Vector2 operator*(int n) const;. Aritmetik operatörler genellikle const üye olarak yazılır çünkü nesneyi değiştirmezler.

Çıkarma operatörü

operator- iki nesnenin farkını verir. Toplama gibi const üye olarak yazılır ve yeni bir nesne döndürür.

Örnek: Vector2 c = a - b; ifadesi a.operator-(b) çağırır ve c.x = a.x - b.x, c.y = a.y - b.y olur. Çıkarma, sıfır noktası olarak kabul edilen b'den a'ya olan vektörü verir. Oyun ve grafik uygulamalarında bu, göreceli konum veya hız farkı anlamına gelir. Operatör döndürdüğü için zincirleme de çalışır: a - b - c önce a - b'yi hesaplar, sonra sonucu c'den çıkarır.

Uygulama Vector2 sınıfına operator- ekle

Başlangıç kodundaki Vector2 sınıfına operator- ekle: gövdesi return Vector2(x - other.x, y - other.y);. main içinde a - b'yi hesapla ve sonucun x ve y'sini std::cout ile yazdır.

Başlangıç kodu

main.cpp
#include <iostream>

class Vector2 {
public:
    int x;
    int y;
    Vector2(int x_, int y_) : x(x_), y(y_) {}
    // Çıkarma operatörünü ekle
};

int main() {
    Vector2 a(5, 8);
    Vector2 b(2, 3);
    // a - b'yi hesapla ve sonucu yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>

class Vector2 {
public:
    int x;
    int y;
    Vector2(int x_, int y_) : x(x_), y(y_) {}
    Vector2 operator-(const Vector2& other) const {
        return Vector2(x - other.x, y - other.y);
    }
};

int main() {
    Vector2 a(5, 8);
    Vector2 b(2, 3);
    Vector2 c = a - b;
    std::cout << c.x << " " << c.y;
    return 0;
}

Beklenen çıktı

3 5

Soru ve cevaplar

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

1 Operatörü işleme eşle

Kavram Anlamı
operator+ Toplama
operator- Çıkarma
operator* Çarpma
operator/ Bölme

2 Çıkarma operatörü adı

Soru
Vector2 ____(const Vector2& other) const { ... }
Cevap
Vector2 operator-(const Vector2& other) const { ... }

Açıklama: operator- çıkarma operatörüdür.

3 a - b ifadesi ne döndürür? (Vector2)

main.cpp
Vector2 a(5,8), b(2,3);
Vector2 c = a - b;
  • Vector2(7, 11)
  • Vector2(3, 5) Doğru cevap
  • Vector2(10, 24)
  • Vector2(2, 3)

Açıklama: 5-2=3, 8-3=5 → Vector2(3, 5).

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