Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Operator C++ Overloading dengan Contoh

Apa itu Overload Operator?

Menggunakan operator kelebihan beban di C++, Anda dapat menentukan lebih dari satu arti untuk operator dalam satu lingkup. Tujuan dari overloading operator adalah untuk memberikan arti khusus dari operator untuk tipe data yang ditentukan pengguna.

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

Dalam tutorial C++ ini, Anda akan belajar:

Sintaks

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

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

Berikut adalah penjelasan untuk sintaks di atas:

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:

Berikut adalah screenshot kodenya:

Penjelasan Kode:

  1. Menyertakan file header iostream dalam kode kita untuk menggunakan fungsinya.
  2. Sertakan ruang nama std dalam program kami untuk menggunakan kelasnya tanpa memanggilnya.
  3. Buat kelas bernama TestClass.
  4. Gunakan pengubah akses pribadi, yang menandai anggota kelas sebagai dapat diakses secara pribadi.
  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 sebanyak 1.
  10. Akhir dari bagian kelebihan beban operator. Operator telah diberi nama baru.
  11. Mendefinisikan fungsi bernama fungsi Display().
  12. Cetak nilai jumlah variabel di samping teks lain di konsol saat fungsi Display() dipanggil. } menandai akhir dari isi fungsi Display().
  13. Akhir dari isi kelas.
  14. Panggil fungsi main(). Logika program harus ditambahkan dalam fungsi ini.
  15. Buat instance kelas TestClass dan beri nama tc.
  16. Ini akan memanggil fungsi void operator –().
  17. Gunakan posisi Kelas TestClass untuk memanggil fungsi Display().
  18. Fungsi harus mengembalikan nilai setelah berhasil diselesaikan.
  19. Akhir dari isi fungsi main().

Pendekatan Berbeda untuk Operator Overloading di C++

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

  1. Fungsi Anggota
  2. Fungsi Non-Anggota
  3. Fungsi Teman

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

Dapatkah semua Operator C++ Overload?

Tidak. Ada operator C++ yang tidak bisa di-overload.

Mereka termasuk:

Hal yang Perlu Diingat:

  1. Dengan overloading 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. Operator =dan &C++ kelebihan beban secara default. Misalnya, Anda dapat menyalin objek dari Kelas yang sama secara langsung menggunakan operator =.
  3. Prioritas operator tidak mengubah asosiatif dan prioritas operator. Namun, Anda dapat mengubah urutan evaluasi menggunakan tanda kurung.
  4. Ada empat operator yang tidak dapat Anda bebankan di C++. Mereka termasuk operator resolusi ruang lingkup (::), operator pemilihan anggota (.), pemilihan anggota melalui pointer ke operator fungsi (.*), dan operator ternary (?:).

Aturan untuk Operator Overloading:

Berikut adalah aturan untuk Operator Overloading:

Cara Overload 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:

Berikut adalah screenshot kodenya:

Penjelasan Kode:

  1. Menyertakan file header iostream dalam kode kita untuk menggunakan fungsinya.
  2. Sertakan ruang nama std dalam program kami untuk menggunakan kelasnya tanpa memanggilnya.
  3. Buat kelas bernama OperatorOverload.
  4. Gunakan pengubah akses pribadi, yang menandai anggota kelas sebagai dapat diakses secara pribadi.
  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 hingga 10.
  8. Membebani arti 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 di samping teks lain di konsol saat fungsi Print() dipanggil.
  13. Akhir dari isi fungsi Print().
  14. Akhir dari isi kelas.
  15. Panggil fungsi main(). Logika program harus ditambahkan dalam fungsi ini.
  16. Buat instance Kelas OperatorOverload bernama ov.
  17. Ini akan memanggil fungsi void operator ++().
  18. Gunakan posisi kelas OperatorOverload untuk memanggil fungsi Print().
  19. Fungsi 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:

Berikut adalah screenshot kodenya:

Penjelasan Kode:

  1. Memasukkan file header iostream ke dalam program kami untuk menggunakan fungsinya.
  2. Sertakan namespace std ke dalam program kami untuk menggunakan kelasnya tanpa memanggilnya.
  3. Buat kelas bernama TestClass. { menandai awal dari badan kelas.
  4. Gunakan pengubah akses pribadi untuk menandai variabel sebagai pribadi, artinya variabel tersebut hanya dapat diakses dari dalam Kelas.
  5. Tentukan dua variabel bilangan bulat, real dan lebih.
  6. Gunakan pengubah akses publik untuk menandai konstruktor sebagai publik, artinya konstruktor akan dapat diakses bahkan di luar Kelas.
  7. Membuat konstruktor kelas dan menginisialisasi variabel.
  8. Inisialisasi nilai variabel real.
  9. Inisialisasi nilai variabel.
  10. Akhir dari badan konstruktor.
  11. Mengganti arti operator +.
  12. Buat hasil tipe data dari tipe TestClass.
  13. Gunakan operator + dengan bilangan kompleks. Baris ini akan menambahkan bagian real dari suatu bilangan ke bagian real dari bilangan lain.
  14. Gunakan operator + dengan bilangan kompleks. Baris ini akan menambahkan bagian imajiner dari suatu bilangan ke bagian imajiner dari bilangan lain.
  15. Program akan mengembalikan nilai hasil variabel setelah eksekusi berhasil.
  16. Akhir dari definisi arti baru operator +, yaitu overloading.
  17. Panggil metode print().
  18. Cetak bilangan kompleks baru setelah penjumlahan di konsol.
  19. Akhir dari isi fungsi print().
  20. Akhir dari isi Kelas TestClass.
  21. Memanggil fungsi main().
  22. Meneruskan nilai dari bagian real dan kompleks yang akan ditambahkan. Bagian pertama dari c1 akan ditambahkan ke bagian pertama dari c2, yaitu 9+4. Bagian kedua dari c1 akan ditambahkan ke bagian kedua dari 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().

Ringkasan:


Bahasa C

  1. Melewati Array ke Fungsi dalam Pemrograman C++
  2. Kelebihan Operator Python
  3. Operator di C++ dengan Contoh:Apa itu, Jenis dan Program
  4. C++ do… while loop dengan Contoh
  5. C++ Pointer dengan Contoh
  6. Tipe Data C++ Char dengan Contoh
  7. Struktur C++ Dengan Contoh
  8. std::daftar di C++ dengan Contoh
  9. Fungsi C++ dengan Contoh Program
  10. Fungsi Python Lambda dengan CONTOH