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); // postfixOperator 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 cakupansizeof,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
- Operator Aritmetika dan Perbandingan
- Operator Penyisipan dan Ekstraksi Aliran
- Operator Subskrip dan Pemanggilan Fungsi
- Operator Perbandingan Tiga Arah C++20