Video: Learn Python - Full Course for Beginners [Tutorial] 2024
Jenis data intrinsik dibuat ke dalam bahasa C ++, seperti int , float , dan double dan berbagai jenis pointer. C ++ memungkinkan programmer mendefinisikan operator untuk kelas yang telah dibuat oleh programmer selain operator intrinsik ini. Ini disebut operator overloading.
Biasanya, overloading operator bersifat opsional dan tidak dicoba dengan memulai programer C ++. Banyak programmer C ++ yang berpengalaman tidak menganggap overloading operator adalah ide bagus. Namun, Anda harus belajar bagaimana membebani satu operator: operator penugasan.
Operator tidak lebih dari fungsi built-in dengan sintaks yang aneh. Operasi tambahan berikut
a + b
dapat dipahami seolah-olah ditulis
operator + (a, b)
Sebenarnya, C ++ memberi setiap nama fungsi gaya kepada operator. Nama fungsional operator adalah simbol operator yang didahului oleh operator kata kunci dan diikuti oleh jenis argumen yang sesuai. Sebagai contoh, operator + yang menambahkan sebuah int ke int yang menghasilkan sebuah int disebut int operator + (int, int).
Operator yang ada dapat didefinisikan untuk kelas yang ditentukan pengguna. Dengan demikian, saya bisa membuat operator Kompleks * (const Complex &, const Complex &) yang memungkinkan saya untuk mengalikan dua objek tipe Complex . Operator baru mungkin memiliki semantik yang sama dengan operator yang overload, tapi tidak perlu. Aturan berikut berlaku saat operator overloading:
-
Pemrogram tidak dapat membebani . (titik), :: (titik dua), . *, * ->, sizeof dan ?: (terner) operator.
-
Pemrogram tidak dapat menemukan operator baru. Misalnya, Anda tidak dapat menemukan operasi x $ y .
-
Sintaks dari operator tidak dapat diubah. Dengan demikian, Anda tidak dapat menentukan operasi% i karena% sudah didefinisikan sebagai operator biner.
-
Prediksi operator tidak dapat berubah. Sebuah program tidak dapat memaksa operator + untuk dievaluasi sebelum operator * .
-
Operator tidak dapat didefinisikan ulang bila diterapkan pada jenis intrinsik - Anda tidak dapat mengubah arti dari 1 + 2. Operator yang ada hanya dapat kelebihan beban untuk tipe yang baru didefinisikan.
Operator overloading adalah salah satu dari hal-hal yang sepertinya merupakan ide yang jauh lebih baik daripada sebenarnya. Biasanya, operator overloading memperkenalkan lebih banyak masalah daripada yang dipecahkannya.