0Pricing
C++ Academy · Pelajaran

Operator Aritmetika dan Perbandingan

Lebihkan beban +, -, *, /, ==, <, dan operator terkait sesuai praktik terbaik

Operator Aritmetika dan Perbandingan adalah pelajaran C++ Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C++ Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C++ Academy mencakup 4 pelajaran total.

Mengapa Membebani Operator

Pembebanan operator memungkinkan tipe Anda berperilaku seperti tipe bawaan — v1 + v2 lebih mudah dibaca daripada v1.add(v2). Gunakan pendekatan ini untuk tipe nilai seperti vektor, bilangan kompleks, dan uang.

Mendefinisikan operator+

Anda dapat membebani + sebagai anggota atau fungsi bebas. Fungsi bebas lebih simetris.

struct Vec2 {
    double x, y;
    Vec2 operator+(const Vec2& other) const {
        return {x + other.x, y + other.y};
    }
};

Bentuk Fungsi Bebas

Fungsi bebas memberikan status yang sama kepada kedua operand — berguna ketika konversi dapat diterapkan pada salah satu sisi.

Vec2 operator+(const Vec2& a, const Vec2& b) {
    return {a.x + b.x, a.y + b.y};
}

Operator Penugasan Gabungan

Implementasikan += terlebih dahulu; kemudian bangun + di atasnya. Inilah idiom kanonisnya.

Vec2& operator+=(const Vec2& other) {
    x += other.x;
    y += other.y;
    return *this;
}

Vec2 operator+(Vec2 lhs, const Vec2& rhs) {
    lhs += rhs;
    return lhs;
}

Operator Unari

Beberapa operator bersifat unari: -x, +x, !x, ~x, ++x, --x.

Vec2 operator-() const { return {-x, -y}; }

Inkrementasi Awalan vs Akhiran

Awalan tidak menerima parameter; akhiran menerima int semu untuk membedakannya.

Counter& operator++();        // prefix
Counter  operator++(int);     // postfix

Operator Perbandingan

Operator perbandingan mengembalikan bool. Fungsi bebas paling sesuai untuk menjaga konsistensi.

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); }

Kurang Dari untuk Pengurutan

Jika tipe Anda perlu diurutkan atau digunakan sebagai kunci peta, definisikan operator<. Operator relasional lainnya dapat diturunkan dari operator tersebut.

Operator Simetris untuk Tipe Campuran

Untuk mendukung 3 + vec sekaligus vec + 3, definisikan keduanya — atau gunakan fungsi bebas yang melakukan konversi.

Hindari Kejutan

Operator yang dibebani harus berperilaku secara intuitif. Jangan mendefinisikan ulang + agar berarti pengurangan. Ikuti aljabar konvensional dari operator tersebut.

Operator yang Tidak Dapat Dibebani Berlebih

Beberapa operator tidak dapat dibebani berlebih:

  • ?: — ternari
  • . — akses anggota (tetapi -> dapat dibebani berlebih)
  • :: — resolusi cakupan
  • sizeof, alignof, typeid

Pemeriksaan Singkat

Apa pola implementasi yang umum untuk operator+ pada tipe yang ditentukan pengguna?

Ringkasan

Pembebanan operator membuat tipe yang ditentukan pengguna terasa alami. Implementasikan penugasan gabungan terlebih dahulu, lalu aritmetika biasa. Operator perbandingan sebaiknya berupa fungsi bebas. Pertahankan semantik konvensional—perilaku yang mengejutkan adalah kesalahan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Operator Aritmetika dan Perbandingan” gratis?

Ya — teks lengkap “Operator Aritmetika dan Perbandingan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C++ Academy, upgrade ke CoddyKit PRO. Kursus C++ Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Operator Aritmetika dan Perbandingan”?

Lebihkan beban +, -, *, /, ==, <, dan operator terkait sesuai praktik terbaik Kamu berlatih C++ Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C++ Academy?

Tidak diperlukan pengalaman sebelumnya. C++ Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Operator Aritmetika dan Perbandingan” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C++ Academy ini?

Ya. Setiap pelajaran C++ Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Operator Aritmetika dan Perbandingan
  2. Operator Penyisipan dan Ekstraksi Aliran
  3. Operator Subskrip dan Pemanggilan Fungsi
  4. Operator Perbandingan Tiga Arah C++20
← Kembali ke C++ Academy