Aritmetik operatörler
- C++ kursu
- Orta seviye
- Ders 107/116
- 5 dk
+ 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
#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
#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ı
Vector2 ____(const Vector2& other) const { ... }
Vector2 operator-(const Vector2& other) const { ... }
Açıklama: operator- çıkarma operatörüdür.
3 a - b ifadesi ne döndürür? (Vector2)
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).