C++ Operauntuk Kelebihan dengan Contoh

⚡ Ringkasan Cerdas

Operakelebihan beban tor di C++ Memungkinkan Anda mendefinisikan ulang cara kerja operator bawaan seperti + dan == dengan kelas dan objek Anda sendiri. Di sini Anda akan mempelajari sintaksnya, pendekatannya, operator mana yang dapat di-overload, dan aturan yang harus diikuti.

  • Apa itu: OperaOverloading Tor mendefinisikan ulang operator seperti + untuk kelas Anda sendiri.
  • sintaks: Definisikan sebuah fungsi bernama operator diikuti dengan simbol, seperti operator+.
  • 🔀 Pendekatan: Anda dapat melakukan overloading operator sebagai fungsi anggota atau fungsi teman.
  • 🚫 Batas: Beberapa operator, seperti ::, ., dan ?:, tidak dapat di-overload.
  • 🤖 Bantuan AI: Alat AI seperti GitHub Copilot menulis fungsi operator overload secara instan.

C++ Operauntuk Kelebihan beban

Apa itu Operauntuk Kelebihan beban?

Menggunakan operator kelebihan beban in C++, Anda dapat menentukan lebih dari satu makna untuk suatu operator dalam satu cakupan. Tujuan dari operator overloading adalah untuk menyediakan makna khusus dari suatu operator untuk tipe data yang ditentukan pengguna.

Dengan bantuan operator overloading, Anda dapat mendefinisikan ulang sebagian besar C++ operator. Anda juga dapat menggunakan operator overloading untuk melakukan operasi yang berbeda menggunakan satu operator.

Sintaksis

Untuk membebani a C++ operator, Anda harus mendefinisikan fungsi khusus di dalam Kelas sebagai berikut:

class class_name
{
    ... .. ...
    public
       return_type operator symbol (argument(s))
       {
           ... .. ...
       } 
    ... .. ...
};

Berikut penjelasan sintaks di atas:

  • return_type adalah tipe kembalian untuk fungsi tersebut.
  • Selanjutnya Anda menyebutkan kata kunci operator.
  • Simbol tersebut menunjukkan simbol operator yang akan kelebihan beban. Misalnya +, -, <, ++.
  • Argumen dapat diteruskan ke fungsi operator dengan cara yang sama seperti fungsi.

Contoh 1

#include <iostream>
using namespace std;
class TestClass {
private:
	int count;
public:
	TestClass() : count(5) {}
	void operator --() {
		count = count - 3;
	}
	void Display() { 

		cout << "Count: " << count; }
};

int main() {
	TestClass tc;
	--tc;
	tc.Display();
	return 0;
}

Keluaran:

 Operauntuk Kelebihan beban

Berikut ini tangkapan layar kodenya:

 Operauntuk Kelebihan beban

Code Penjelasan:

  1. Menyertakan file header iostream dalam kode kita untuk menggunakan fungsinya.
  2. Sertakan namespace std dalam program kami untuk menggunakan kelasnya tanpa memanggilnya.
  3. Buat kelas bernama TestClass.
  4. Gunakan pengubah akses privat, yang menandai anggota kelas sebagai dapat diakses secara privat.
  5. Buat jumlah variabel integer. Variabel ini akan dapat diakses secara pribadi.
  6. Gunakan pengubah akses publik, yang menandai anggota kelas sebagai dapat diakses secara pribadi.
  7. Gunakan konstruktor kelas untuk menginisialisasi penghitung variabel ke 5.
  8. Membebani arti dari — operator.
  9. Operator akan mengurangi nilai variabel x sebesar 1.
  10. Akhir dari bagian kelebihan beban operator. Operator telah diberi nama baru.
  11. Mendefinisikan fungsi bernama fungsi Display().
  12. Cetak nilai jumlah variabel bersama teks lain di konsol saat fungsi Display() dipanggil. Tanda } menandai akhir dari isi fungsi Display().
  13. Akhir dari badan kelas.
  14. Panggil fungsi main(). Logika program harus ditambahkan dalam fungsi ini.
  15. Buat sebuah instance dari kelas TestClass dan beri nama tc.
  16. Ini akan memanggil fungsi operator void –().
  17. Gunakan pendirian Kelas TestClass untuk memanggil fungsi Display().
  18. Fungsi tersebut harus mengembalikan nilai setelah berhasil diselesaikan.
  19. Akhir dari isi fungsi main().

Pendekatan Berbeda untuk Operauntuk kelebihan muatan masuk C++

Anda dapat melakukan kelebihan beban operator dengan menerapkan salah satu jenis fungsi berikut:

  1. Fungsi Anggota
  2. Fungsi Non-Anggota
  3. Fungsi Teman
  • Fungsi kelebihan beban operator dapat menjadi fungsi anggota ketika operan Kiri adalah objek Kelas.
  • Ketika operan Kiri berbeda, Operauntuk fungsi kelebihan beban harus berupa fungsi non-anggota.

Anda dapat menjadikan fungsi kelebihan operator sebagai fungsi teman jika perlu mengakses anggota kelas privat dan terlindungi.

Semua bisa C++ Operaapakah kelebihan beban?

Tidak. Ada C++ operator yang tidak dapat dibebani berlebih.

Mereka termasuk:

  • :: -Operator resolusi ruang lingkup
  • ?: -operator ternary.
  • . -pemilih anggota
  • Ukuran operator
  • * -pemilih penunjuk anggota

Hal-hal untuk diingat

  1. Dengan kelebihan beban operator, Anda dapat mendefinisikan ulang cara kerja operator hanya untuk tipe yang ditentukan pengguna (objek, struktur). Anda tidak dapat menggunakannya untuk tipe bawaan (float, char, int, dll.).
  2. = dan & C++ operator kelebihan beban secara default. Misalnya, Anda dapat menyalin objek dari Kelas yang sama secara langsung menggunakan operator =.
  3. OperaPreseden tor tidak mengubah asosiatif dan preseden operator. Namun, Anda dapat mengubah urutan evaluasi menggunakan tanda kurung.
  4. Ada empat operator yang tidak dapat Anda kelebihan beban di C++Operator-operator tersebut meliputi operator resolusi cakupan (::), operator pemilihan anggota (.), operator pemilihan anggota melalui penunjuk ke fungsi (.*), dan operator terner (?:).

Aturan untuk Operauntuk Kelebihan beban

Berikut adalah aturan untuk Operauntuk kelebihan beban:

  • Agar dapat berfungsi, setidaknya satu operan harus berupa objek kelas yang ditentukan pengguna.
  • Anda hanya dapat membebani operator yang ada secara berlebihan. Anda tidak dapat membebani operator baru secara berlebihan.
  • Beberapa operator tidak dapat kelebihan beban menggunakan fungsi teman. Namun, operator tersebut dapat kelebihan beban menggunakan fungsi anggota.

Cara Membebani Secara Berlebihan Operator

Contoh 1

#include <iostream>   
using namespace std;
class OperatorOverload {
private:
	int x;

public:
	OperatorOverload() : x(10) {}
	void operator ++() {
		x = x + 2;
	}
	void Print() {
		cout << "The Count is: " << x;
		}
};
int main() {
	OperatorOverload ov;
	++ov;   
	ov.Print();
	return 0;
}

Keluaran:

Overload Operauntuk Contoh

Berikut ini tangkapan layar kodenya:

Overload Operauntuk Contoh

Code Penjelasan:

  1. Menyertakan file header iostream dalam kode kita untuk menggunakan fungsinya.
  2. Sertakan namespace std dalam program kami untuk menggunakan kelasnya tanpa memanggilnya.
  3. Buat kelas bernama OperatorKelebihan beban.
  4. Gunakan pengubah akses privat, yang menandai anggota kelas sebagai dapat diakses secara privat.
  5. Buat variabel integer x. Variabel ini akan dapat diakses secara pribadi.
  6. Gunakan pengubah akses publik, yang menandai anggota kelas sebagai dapat diakses secara pribadi.
  7. Gunakan konstruktor kelas untuk menginisialisasi variabel x ke 10.
  8. Membebani arti dari operator ++.
  9. Operator akan menaikkan nilai variabel x dengan 2.
  10. Akhir dari bagian kelebihan beban operator. Operator telah diberi nama baru.
  11. Memanggil fungsi Print().
  12. Cetak nilai variabel x bersama teks lain di konsol saat fungsi Print() dipanggil.
  13. Akhir dari isi fungsi Print().
  14. Akhir dari badan kelas.
  15. Panggil fungsi main(). Logika program harus ditambahkan dalam fungsi ini.
  16. Buat instance dari OperaKelas torOverload bernama ov.
  17. Ini akan memanggil fungsi operator void ++().
  18. Gunakan pendirian Operakelas torOverload untuk memanggil fungsi Print().
  19. Fungsi tersebut harus mengembalikan nilai setelah berhasil diselesaikan.
  20. Akhir dari isi fungsi main().

Contoh 2

#include<iostream> 
using namespace std;

class TestClass {
private:
	int real, over;
public:
	TestClass(int rl = 0, int ov = 0) {
		real = rl;
		over = ov;
	}

	TestClass operator + (TestClass const &obj) {
		TestClass result;
		result.real = real + obj.real;
		result.over = over + obj.over;
		return result;
	}
	void print() {
		cout << real << " + i" << over << endl;
	}
};
int main()
{
	TestClass c1(9, 5), c2(4, 3);
	TestClass c3 = c1 + c2;
	c3.print();
}

Keluaran:

Overload Operauntuk Contoh

Berikut ini tangkapan layar kodenya:

Overload Operauntuk Contoh

Code Penjelasan:

  1. Menyertakan file header iostream ke dalam program kami untuk menggunakan fungsinya.
  2. Sertakan namespace std ke dalam program kita untuk menggunakan kelasnya tanpa memanggilnya.
  3. Buat kelas bernama TestClass. Tanda { menandai awal badan kelas.
  4. Gunakan pengubah akses privat untuk menandai variabel sebagai privat, artinya variabel hanya dapat diakses dari dalam Kelas.
  5. Tentukan dua variabel integer, real dan over.
  6. Gunakan pengubah akses publik untuk menandai konstruktor sebagai publik, artinya konstruktor dapat diakses bahkan di luar Kelas.
  7. Membuat konstruktor kelas dan menginisialisasi variabel.
  8. Inisialisasi nilai variabel real.
  9. Inisialisasi nilai variabel di atas.
  10. Akhir dari badan konstruktor.
  11. Abaikan arti dari operator +.
  12. Buat hasil tipe data tipe TestClass.
  13. Gunakan operator + dengan bilangan kompleks. Baris ini akan menambahkan bagian riil suatu bilangan ke bagian riil bilangan lain.
  14. Gunakan operator + dengan bilangan kompleks. Baris ini akan menambahkan bagian imajiner suatu bilangan ke bagian imajiner bilangan lain.
  15. Program akan mengembalikan nilai hasil variabel setelah eksekusi berhasil.
  16. Akhir dari definisi arti baru dari operator +, yaitu kelebihan beban.
  17. Panggil metode print().
  18. Cetak bilangan kompleks baru setelah penjumlahan pada konsol.
  19. Akhir dari isi fungsi print().
  20. Akhir dari isi Kelas TestClass.
  21. Memanggil fungsi main().
  22. Melewatkan nilai bagian riil dan kompleks yang akan ditambahkan. Bagian pertama c1 akan ditambahkan ke bagian pertama c2, yaitu 9+4. Bagian kedua c1 akan ditambahkan ke bagian kedua c, yaitu 5+3.
  23. Melakukan operasi menggunakan operator + yang kelebihan beban dan menyimpan hasilnya dalam variabel c3.
  24. Mencetak nilai variabel c3 di konsol.
  25. Akhir dari isi fungsi main().

Pertanyaan Umum Demo Slot

OperaOverloading Tor memungkinkan Anda mendefinisikan ulang cara kerja operator bawaan, seperti + atau ==, dengan objek dari kelas Anda sendiri, sehingga operator tersebut berperilaku alami untuk tipe data kustom.

Definisikan fungsi khusus yang namanya berupa kata kunci operator diikuti simbol, misalnya operator+. Fungsi ini menerima operan sebagai parameter dan mengembalikan hasilnya.

Ada dua pendekatan utama: melakukan overloading operator sebagai fungsi anggota kelas, atau sebagai fungsi friend yang dapat mengakses anggota privat kelas tersebut.

Sebagian besar operator dapat di-overload, tetapi beberapa tidak dapat di-overload, termasuk operator resolusi cakupan (::), akses anggota (.), penunjuk anggota (.*), dan operator ternary (?:).

Anda hanya dapat melakukan overloading pada operator yang sudah ada, setidaknya satu operand harus berupa tipe yang ditentukan pengguna, dan Anda tidak dapat mengubah prioritas, asosiativitas, atau jumlah operand dari sebuah operator.

Asisten AI seperti GitHub Copilot menghasilkan fungsi operator overload untuk kelas Anda, memilih antara fungsi anggota dan fungsi teman, serta menambahkan tipe pengembalian yang benar saat Anda mengetik.

Ya. Alat berbasis AI menghasilkan operator yang memiliki banyak fungsi seperti + dan ==, mengikuti aturan standar, dan menandai operator yang tidak dapat memiliki banyak fungsi, sehingga menghemat waktu dan mengurangi kesalahan.

OperaOverloading membuat kelas lebih mudah digunakan dan dibaca dengan memungkinkan objek bekerja dengan operator yang sudah dikenal, seperti menambahkan dua vektor dengan + alih-alih fungsi bernama.

Ringkaslah postingan ini dengan: